在這裏,我有兩個表命名爲Product表和銷售表使用觸發器顯示錯誤meassage:如何在SAP HANA
Product table Sales table
P_ID|QTY | |O_ID|QTY |
1 |10 | |1 |5 |
2 |15 |
現在,我試圖創建每當我插入的概念觸發在銷售表中的產品表應該更新新的記錄是基於銷售表的「量」 代碼「清單」:
/*---------------------------------------------------------*/
create trigger "KABIL_PRACTICE"."SALES_TRIGGER"
after insert on "KABIL_PRACTICE"."SALES" REFERENCING NEW ROW AS newrow for each row
begin
update "KABIL_PRACTICE"."Inventory" set "Inventory" = "Inventory" - :newrow.QTY
where "P_ID" = :newrow.P_ID ;
end;
/*-----------------------------------------------------------*/
,並收到預期output.when我插入一條記錄與P中的銷售表-ID 1,數量爲5
updated Product table Sales table
P_ID|QTY | |O_ID|QTY |
1 |-1 | |1 |5 |
2 |15 | |1 |6 |
但在這裏我有一個另一個問題..如果我有P_ID 1
再插入一條記錄到銷售表再次quantity 6
即銷售表數量超過可用的庫存量意味着它進入負值...
我只想親密的銷售訂單數量值大於可用庫存量較高,它不應該去負值...有什麼辦法這個...
我想這代碼:
create trigger "KABIL_PRACTICE"."SALES_UPDATE_TRIGGER"
before insert on "KABIL_PRACTICE"."SALES" REFERENCING NEW ROW AS newrow for each row
begin
if("Inventory" > :newrow.QTY)
Then
update "KABIL_PRACTICE"."Inventory" set "Inventory" = "Inventory" - :newrow.QTY
where "P_ID" = :newrow.P_ID ;
elseif ("Inventory" < :newrow.QTY)
Then NULL;
delete "KABIL_PRACTICE"."SALES" where "QTY" = 0;
end;