Para que su cliente MySQL no interprete el ;
que termina el INSERT
declaración como el final de CREATE TRIGGER
instrucción, debe informarle que desea utilizar algún otro delimitador de instrucción.
En el mysql
cliente de línea de comandos, puede hacerlo con DELIMITER
comando
. Por ejemplo, para cambiar el delimitador de su declaración a un doble punto y coma:
DELIMITER ;;
Entonces puedes hacer:
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;;
Sin embargo, debido a que en este caso su disparador solo contiene una declaración, no necesita usar un BEGIN ... END
bloque de declaraciones compuestas
y, por lo tanto, podría evitar cambiar los delimitadores por completo:
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'
)
;