Aby Twój klient MySQL nie interpretował ;
która kończy INSERT
instrukcja jako koniec CREATE TRIGGER
oświadczenie, musisz poinformować go, że chcesz użyć innego ogranicznika oświadczenia.
W mysql
klienta wiersza poleceń, możesz to zrobić za pomocą DELIMITER
polecenie
. Na przykład, aby zmienić ogranicznik wyciągu na podwójny średnik:
DELIMITER ;;
Następnie możesz zrobić:
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;;
Jednak ponieważ w tym przypadku wyzwalacz zawiera tylko jedną instrukcję, nie musisz używać BEGIN ... END
blok instrukcji złożonych
i dlatego może całkowicie uniknąć zmiany ograniczników:
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'
)
;