create or replace NONEDITIONABLE TRIGGER SumUpdate AFTER INSERT ON stavkaotpremnice FOR EACH ROW
declare pragma autonomous_transaction;
begin
UPDATE otpremnica a
set a.ukupno=
(SELECT SUM(ukupno)
FROM stavkaotpremnice
WHERE brojotpremnice =: new.brojotpremnice)
WHERE a.brojotpremnice = :new.brojotpremnice;
commit;
end;
此触发器是对表stavakaotpremnice中名为“ ukupno”的列的值求和,然后将其存储在另一个表otpremnica中也称为“ ukupno”的列中。触发器检查id(brojotpremnice)是否相同并求和。Brojotpremnice是表otpremnica的外键。有谁知道为什么它完全忽略了第一个条目?如果我在stavkaotpremnica中放入行,我只算第一个条目。
可以通过以下增量添加来解决此类问题:
UPDATE otpremnica a
set a.ukupno = a.ukupno + :new.ukupno
WHERE a.brojotpremnice = :new.brojotpremnice;
另外,请阅读有关pragma autonomous_transaction
。为什么使用它?故意的?如果您不知道,请阅读。(它将交易分开)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句