表正在变异触发器/函数可能看不到---试图在数据库中插入多个数据时出错

问题描述

当我尝试在数据库中插入多行时出现以下错误。但是,对于同一触发器,单个实体对象的数据已保存。

QL Error: 4091,sqlState: 42000
2020-08-12 13:53:54,634 INFO  [STDOUT] 13:53:54,634 ERROR [JDBCExceptionReporter] ORA-04091: table STUDENT is mutating,trigger/function may not see it
ORA-06512: at "STUDENT_VERSION_UPDATE",line 2
ORA-04088: error during execution of trigger 'STUDENT_VERSION_UPDATE'

有人通过传递多个实体对象以插入数据库而不更改现有触发器时,可以帮助我如何解决此问题。

我在下面附加了Trigeer代码

create or replace TRIGGER STUDENT_VERSION_UPDATE
BEFORE INSERT ON STUDENT
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
 UPDATE STUDENT SET IS_NEW_STUDENT  = 'N' where ID <> :new.ID and IS_NEW_STUDENT = 'Y';
END;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)