Om ervoor te zorgen dat uw MySQL-client de ;
. niet interpreteert dat de INSERT
. beëindigt statement als het einde van de CREATE TRIGGER
verklaring, moet u deze laten weten dat u een ander scheidingsteken voor de verklaring wilt gebruiken.
In de mysql
opdrachtregelclient, kunt u dit doen met de DELIMITER
opdracht
. Als u bijvoorbeeld het scheidingsteken voor uw verklaring wilt wijzigen in een dubbele puntkomma:
DELIMITER ;;
Dan kun je het volgende doen:
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;;
Omdat uw trigger in dit geval echter maar één instructie bevat, hoeft u geen BEGIN ... END
samengesteld instructieblok
en zou daarom het veranderen van scheidingstekens helemaal kunnen vermijden:
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'
)
;