更新前Oracle SQL变异表触发器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新前Oracle SQL变异表触发器相关的知识,希望对你有一定的参考价值。
我想为表创建更新触发器。触发器已创建,但是当我更新列finish
时,它会说变异表。
这是我的代码
CREATE OR REPLACE TRIGGER SET_COST BEFORE UPDATE OF finish ON PAY
FOR EACH ROW
BEGIN
UPDATE PAY
SET PAY.COST = (finish-start) * 20000
WHERE PAY.ID=:new.ID;
END;
这个触发器给了我'Mutating Table'错误,到目前为止我一直无法修复它。有什么建议吗?谢谢
答案
首先,你根本不应该这样做。存储在您需要时可以轻松计算的值是没有用的。
截至您的问题:没有更新:
begin
:new.cost := (:new.finish - :new.start) * 20000;
end;
以上是关于更新前Oracle SQL变异表触发器的主要内容,如果未能解决你的问题,请参考以下文章