In un UPDATE TRIGGER
, puoi usare il OLD
parola chiave per accedere ai dati della riga che vengono sostituiti dall'aggiornamento. Il NEW
la parola chiave consente di accedere ai dati della riga in entrata che sostituiranno la vecchia riga, in caso di esito positivo.
Un esempio di UPDATE
il trigger è:
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 qui
A seconda del tipo di attivatore creato, il OLD
e NEW
le righe potrebbero non essere disponibili per te:
INSERIRE TRIGGER
- Accesso al
NEW
solo pseudo righe.
TRIGGER DI AGGIORNAMENTO
- Accesso al
NEW
eOLD
pseudorighe
ELIMINA TRIGGER
- Accesso solo al
OLD
pseudorighe
cioè non c'è OLD
riga su un INSERT
trigger e nessun NEW
riga su un DELETE
trigger.
Domanda di OP
OP non ha fornito il codice effettivo e il messaggio di errore a cui si fa riferimento nei commenti:
indica che l'OP ha inavvertitamente creato un INSERT TRIGGER
e non un UPDATE TRIGGER
come indicato nella domanda. Un INSERT
trigger non ha OLD
pseudotabella.