【发布时间】:2012-04-04 18:02:53
【问题描述】:
在创建语句级触发器时,我遇到了 SQL/Oracle 10g 的问题。我试图用这个触发器实现的是在学生注册量
CREATE OR REPLACE TRIGGER delete_prac
AFTER UPDATE ON studEnrol
BEGIN
DELETE FROM pracList
WHERE Practical IN (
SELECT Practical
FROM studEnrol
GROUP BY Practical
HAVING COUNT(Practical) < 5);
END delete_prac;
我得到的错误是:
ORA-04091: pracList table is mutating, trigger/function may not see it
我已经调查了这个错误,提出的建议是包含 :new 和 :old 关键字,但我不知道该怎么做。
感谢任何帮助!
谢谢。
编辑:忘记添加正在变异的表,它是 pracList 表 EDIT2:将其更改为语句级触发器,变异表仍然出现在 pracList 中
【问题讨论】:
-
您在 pracList 上还有其他触发器吗?
-
在表上显示 ddl:pracList、studEnrol