In een UPDATE TRIGGER
, kunt u de OLD
sleutelwoord om toegang te krijgen tot de rijgegevens die worden vervangen door de update. De NEW
trefwoord geeft toegang tot de inkomende rijgegevens die de oude rij zullen vervangen, indien succesvol.
Een voorbeeld van een UPDATE
trigger is:
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
Afhankelijk van het type trigger dat is gemaakt, wordt de OLD
en NEW
rijen zijn mogelijk niet voor u beschikbaar:
VOER TRIGGER IN
- Toegang tot de
NEW
alleen pseudorijen.
UPDATE TRIGGER
- Toegang tot de
NEW
enOLD
pseudorijen
TRIGGER VERWIJDEREN
- Alleen toegang tot de
OLD
pseudorijen
d.w.z. er is geen OLD
rij op een INSERT
trigger, en geen NEW
rij op een DELETE
trigger.
Vraag van OP
OP heeft niet de daadwerkelijke code verstrekt en de foutmelding waarnaar wordt verwezen in de opmerkingen:
geeft aan dat de OP per ongeluk een INSERT TRIGGER
. heeft gemaakt en niet een UPDATE TRIGGER
zoals aangegeven in de vraag. Een INSERT
trigger heeft geen OLD
pseudo-tabel.