首页 > 解决方案 > 触发器更新联合视图与触发器表

问题描述

我试图让我的触发器更新一个视图,该视图连接两个表,其中一个是激活触发器的表,导致此错误

INSERT INTO MC_CLUB_MBR_TRANSACTION
            *
ERROR at line 1:
ORA-04091: table ESP8339.MC_CLUB_MBR_TRANSACTION is mutating, trigger/function may not see it
ORA-06512: at "ESP8339.TRG_MC_UPD_DUES", line 2
ORA-04088: error during execution of trigger 'ESP8339.TRG_MC_UPD_DUES'

这是我正在使用的代码

CREATE OR REPLACE TRIGGER TRG_MC_UPD_DUES
 AFTER UPDATE OR INSERT ON 
 MC_CLUB_MBR_TRANSACTION
 FOR EACH ROW
BEGIN
    UPDATE MC_TRAN_V
    SET MC_TRAN_V.DUES_DUE = (MC_TRAN_V.ANNUAL_DUES - 
    MC_TRAN_V.DUES_PAID_TO_DATE);
END;
/

INSERT INTO MC_CLUB_MBR_TRANSACTION
(
CLUB_CODE,
STUDENT_ID,
DUES_PAID_TO_DATE
)
VALUES
(
777,
20010,
300
);

标签: oracleplsqldatabase-trigger

解决方案


推荐阅读