Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Der Tisch verändert sich, Trigger/Funktion sieht ihn möglicherweise nicht (verhindert, dass eine Durchschnittsnote unter 2,5 fällt)

Zuerst müssen Sie sich über Trigger, mutating table error und zusammengesetzte Trigger informieren:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS2005

Ihr Trigger ist AFTER UPDATE OR INSERT OR DELETE. Das heißt, wenn Sie UPDATE-, INSERT- oder DELETE-Anweisungen für diese Tabelle ausführen, wird der Trigger ausgelöst. Aber Sie versuchen, dieselbe Tabelle in Ihrem Trigger erneut zu aktualisieren, was kompl ist. falsch. Aus diesem Grund erhalten Sie den Fehler. Sie können nicht dieselbe Tabelle ändern, auf die der Trigger ausgelöst wird. Der Zweck des Triggers besteht darin, automatisch auszulösen, wenn die Tabelle in Ihrem Fall aktualisiert, eingefügt oder gelöscht wird. Was Sie brauchen, ist eine Prozedur, kein Trigger.