行级触发器,在更新一张表的一条记录之后把该条记录的某个字段设为sysdate的月份
create or replace trigger trg_dp_update_dp_detail
after update on dp_detail
referencing old as old new as new
for each row
begin
update dp_detail set month = (select EXTRACT(MONTH FROM SYSDATE) from dual) where DP_DETAIL_ID = :old.DP_DETAIL_ID;
end;
/
执行的更新的时候触发器执行不成功,包ORA-04091、ORA-06512、ORA-04088错,错误堆栈源显示的是update dp_detail set month = (select EXTRACT(MONTH FROM SYSDATE) from dual) where DP_DETAIL_ID = :old.DP_DETAIL_ID;
这局有错
触发器
------解决方案--------------------
明显的变异表错误...
------解决方案--------------------
使用前置触发, BEFORE update on dp_detail