有人可以告诉我如何避免此突变表错误(ORA-04091)我必须为此作业使用更新后触发器。
AFTER UPDATE OF QTY,ACTUALPRICE ON ITEM
FOR EACH ROW
DECLARE
BEGIN
UPDATE ITEM
SET ITEMTOT = :new.QTY * :new.ACTUALPRICE
WHERE ORDID = :old.ORDID AND ITEMID = :old.ITEMID;
END;
您无法再次在查询本身内触发触发器的表上运行查询。就您而言,我认为您的触发器可以重写为仅设置BEFORE UPDATE
的ITEMTOT
触发器:
BEFORE UPDATE OF QTY,ACTUALPRICE ON ITEM
FOR EACH ROW
:new.ITEMTOT = :new.QTY * :new.ACTUALPRICE
END;