In einem UPDATE TRIGGER
, können Sie den OLD
verwenden Schlüsselwort, um auf die Zeilendaten zuzugreifen, die durch die Aktualisierung ersetzt werden. Das NEW
Das Schlüsselwort ermöglicht den Zugriff auf die eingehenden Zeilendaten, die bei Erfolg die alte Zeile ersetzen.
Ein Beispiel für ein UPDATE
Auslöser ist:
CREATE TRIGGER upd_check AFTER UPDATE ON SomeTable
FOR EACH ROW
BEGIN
IF (OLD.LastChangedBy <> NEW.LastChangedBy) THEN
INSERT INTO AuditSomeTable(ID, LastChangedBy)
VALUES (OLD.ID, OLD.LastChangedBy);
END IF;
END;
SQLFiddle hier
Abhängig von der Art des erstellten Triggers wird der OLD
und NEW
Zeilen stehen Ihnen möglicherweise nicht zur Verfügung:
TRIGGER EINFÜGEN
- Zugang zum
NEW
nur Pseudozeilen.
AKTUALISIERTER TRIGGER
- Zugang zum
NEW
undOLD
Pseudozeilen
TRIGGER LÖSCHEN
- Zugriff nur auf den
OLD
Pseudozeilen
d.h. es gibt kein OLD
Zeile auf einem INSERT
Auslöser und kein NEW
Zeile auf ein DELETE
auslösen.
OPs Frage
OP hat den eigentlichen Code und die Fehlermeldung, auf die in den Kommentaren verwiesen wird, nicht bereitgestellt:
zeigt an, dass das OP versehentlich einen INSERT TRIGGER
erstellt hat und kein UPDATE TRIGGER
wie in der Frage angegeben. Ein INSERT
Trigger hat kein OLD
Pseudo-Tabelle.