我编写了一个DB触发器来监视插入操作。插入新记录后,我想自动将CREATION_DATE
设置为sysdate
。
当我想插入新记录时出现错误:
错误
ORA-04091:表REPORT正在变异,触发/功能可能不变 看到它 ORA-06512:at" CREATION_DATE_TEST",第2行 ORA-04088:执行触发器时出错' CREATION_DATE_TEST'
我的代码:
CREATE OR REPLACE TRIGGER creation_date_test
AFTER INSERT ON REPORT FOR EACH ROW
BEGIN
UPDATE REPORT set CREATION_DATE = sysdate
WHERE ROWID = :new.ROWID;
END;
我还尝试将ROWID = :new.ROWID
替换为PROJECT_ID = new.PROJECT_ID
。它会抛出相同的错误。
答案 0 :(得分:3)
听起来你只想要一个设置:new.creation_date
create or replace trigger creation_date_test
before insert on report
for each row
begin
:new.creation_date := sysdate;
end;