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
NEWnur Pseudozeilen.
AKTUALISIERTER TRIGGER
- Zugang zum
NEWundOLDPseudozeilen
TRIGGER LÖSCHEN
- Zugriff nur auf den
OLDPseudozeilen
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.