For at din MySQL-klient ikke skal fortolke ;
der afslutter INSERT
sætning som slutningen af CREATE TRIGGER
erklæring, skal du informere den om, at du ønsker at bruge en anden sætningsafgrænser.
I mysql
kommandolinjeklient, kan du gøre dette med DELIMITER
kommando
. For eksempel for at ændre dit sætningsskilletegn til et dobbelt semikolon:
DELIMITER ;;
Så kan du gøre:
CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW BEGIN
INSERT INTO WORKLOG_BACKUP VALUES (
NULL,
CURRENT_TIMESTAMP,
NEW.LOGNO,
NEW.JOBNO,
NEW.EMPLOYEENO,
NEW.WORKDATE,
NEW.WORKTIME,
'UPDATE'
);
END;;
Men fordi din trigger i dette tilfælde kun indeholder én erklæring, behøver du ikke bruge en BEGIN ... END
sammensat erklæringsblok
og kunne derfor helt undgå at ændre afgrænsninger:
CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW
INSERT INTO WORKLOG_BACKUP VALUES (
NULL,
CURRENT_TIMESTAMP,
NEW.LOGNO,
NEW.JOBNO,
NEW.EMPLOYEENO,
NEW.WORKDATE,
NEW.WORKTIME,
'UPDATE'
)
;