【发布时间】:2021-08-28 22:26:34
【问题描述】:
我在使用此触发器时遇到错误。我只是想在 upby 列中添加操作来执行什么操作,用于更新和删除我只需声明 dbms_output.put_line('updated');供测试用。更新和删除效果很好,但是当我插入记录时它给了我错误。
create or replace trigger modifiy_byy after insert or update or delete on family for each row
declare
pragma autonomous_transaction;
begin
if inserting then
insert into family(F_NUM,F_NAME,F_AGE,UPBY)
values(:new.f_num,:new.f_name,:new.f_age,'insert');
elsif updating then
dbms_output.put_line('updated');
elsif deleting then
dbms_output.put_line('deleted');
end if;
end;
/
insert into family(f_num,f_name,f_age) values(5,'abv',10);
I am getting error like this:
ERROR at line 1:
ORA-00036: maximum number of recursive SQL levels (50) exceeded
ORA-06512: at "SYSTEM.MODIFIY_BYY", line 5
ORA-04088: error during execution of trigger 'SYSTEM.MODIFIY_BYY'
ORA-06512: at "SYSTEM.MODIFIY_BYY", line 5
ORA-04088: error during execution of trigger 'SYSTEM.MODIFIY_BYY'
ORA-06512: at "SYSTEM.MODIFIY_BYY", line 5
帮助我如何解决它: 提前谢谢你:)
【问题讨论】:
-
您想在当前插入的行中将 UPBY 的值设置为“插入”吗?上面的代码会插入一个额外的行,这不是一回事。
标签: sql database oracle plsql triggers