Ich versuche, einen Trigger zu erstellen, der den Wert aus einer Spalte ("nubes" in eine andere ("nubuesleft") der gleichen Tabelle kopiert, wenn eine neue Zeile hinzugefügt wird . richtig zusammengestellt, aber wenn ich eine neue Zeile einzufügen, wirft er einen FehlerSQL-Trigger kompiliert korrekt, aber Fehler
Meine Trigger ist:
create or replace TRIGGER NOTUBESLEFT_INSERT_TRIGGER
AFTER INSERT ON SAMPLES FOR EACH ROW BEGIN
update samples
set notubesleft = (select notubes from samples where sampleid = :new.sampleid);
END;
wenn ich versuche, eine neue Zeile zu begehen erhalte ich die Fehlermeldung:
One error saving changes to table "APEX_WS_PROMETHEUS"."SAMPLES":
Row 10: ORA-04091: table APEX_WS_PROMETHEUS.SAMPLES is mutating, trigger/function may not see it
ORA-06512: at "APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER", line 2 ORA-04088: error during execution of trigger 'APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER'
ORA-06512: at line 1
Ich frage ein neues q Da ich Lösungen finden könnte, um den PL/SQL-Code des Triggers zu strukturieren, kann ich nicht herausfinden, warum das nicht funktioniert.
Danke.
Warum Sie versuchen, dies mit einem After-Insert-Trigger zu tun? –
Weil ich dachte, dass ich zuerst die Werte in die Tabelle einfügen musste, bevor ich sie verwenden konnte, um eine andere Spalte zu füllen. Es ist mein erster Auslöser. – Matte