2017-06-21 78 views
0

我想有一個情況,我有2個表,表1是客戶表與工資欄,表2是稅表。 當我在納稅表中插入稅額的記錄時,我想要減去工資的金額和客戶表(工資欄)隨淨薪更新。Oracle在插入另一個表時觸發更新

CREATE OR REPLACE TRIGGER trig_update 
AFTER INSERT ON tax 
FOR EACH ROW 
DECLARE 
net_sal; 
BEGIN 
net_sal := :customers.salary - :tax.amount; 
UPDATE customers (salary) VALUES (net_sal) 
WHERE (tax.cust_id == customers.id); 
END; 

我得到一個編譯錯誤

回答

1

首先,存在SQL沒有 「==」 操作符。只有「=」。

其次,您需要更新語句中的SET子句。應該是

UPDATE customers 
SET salary = net_sal 
WHERE tax.cust_id = customers.id; 

三,這是壞表設計。取而代之的是更新工資欄,請創建一個名爲「net_salary」的新欄,然後更新該欄。如果您必須刪除稅收記錄並插入新記錄,該怎麼辦?你的工資價值仍然會從其中徵收舊稅,而這一數額不合適。

相關問題