如何解决表正在变异触发器/函数可能看不到---试图在数据库中插入多个数据时出错
当我尝试在数据库中插入多行时出现以下错误。但是,对于同一触发器,单个实体对象的数据已保存。
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 举报,一经查实,本站将立刻删除。