-1

我想为表创建一个更新触发器。触发器已创建,但是当我更新 column 时finish,它说 mutating table。

这是我的代码

    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;

这个触发器给了我“变异表”错误,到目前为止我一直无法修复它。有什么建议吗?谢谢

4

1 回答 1

2

首先,你根本不应该这样做。存储在需要时可以轻松计算的值是没有用的。

至于你的问题:没有更新:

begin
  :new.cost := (:new.finish - :new.start) * 20000;
end;
于 2017-12-29T07:05:11.467 回答