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

Der Trigger kann die Tabelle nicht lesen, nachdem er von derselben Tabelle ausgelöst wurde

Wenn Sie versuchen, das gerade eingefügte ONO zu protokollieren, verwenden Sie :new.ono und überspringen Sie die Auswahl insgesamt:

INSERT INTO BACKUP_ONO VALUES( VALUE1, VALUE2,VALUE3, :new.ono);

Ich glaube nicht, dass Sie aus der Tabelle auswählen können, in die Sie gerade einfügen, da der Commit noch nicht ausgegeben wurde, daher der Fehler der mutierenden Tabelle.

P.S. Erwägen Sie, nicht abzukürzen. Machen Sie es dem nächsten Entwickler klar und nennen Sie es ORDER_NUMBER oder zumindest eine allgemein akzeptierte Abkürzung wie ORDER_NBR, unabhängig von den Benennungsstandards Ihres Unternehmens. :-)

FYI - Wenn Sie aktualisieren, können Sie auch auf :OLD.column zugreifen, den Wert vor der Aktualisierung (natürlich, wenn die Spalte keine Primärschlüsselspalte ist).