いくつかのトリガーが原因で、テーブルにデータを挿入するときに問題が発生しています。たとえば、次のトリガーは、教授が学生ではないことを確認します。
CREATE TRIGGER StudentOrProfessor2
AFTER INSERT ON Professor
FOR EACH ROW
BEGIN
DELETE FROM Professor
WHERE (:NEW.ID IN (SELECT Student.ID FROM Student));
END;
/
しかし、Professor リレーションにタプルを挿入すると、次のエラーが発生します。
SQL> INSERT INTO Professor VALUES('44415676', '246813579', 'Mathematics', '2', '000070000', '317', '3921234');
INSERT INTO Professor VALUES('44415676', '246813579', 'Mathematics', '2', '000070000', '317', '3921234')
*
ERROR at line 1:
ORA-04091: table S11022CZ.PROFESSOR is mutating, trigger/function may not see
it
ORA-06512: at "S11022CZ.STUDENTORPROFESSOR2", line 2
ORA-04088: error during execution of trigger 'S11022CZ.STUDENTORPROFESSOR2'
これを回避するために何をすべきかよくわかりません。