MySQLクライアントが;
を解釈しないようにするため INSERT
を終了します CREATE TRIGGER
の終わりとしてのステートメント ステートメントの場合は、他のステートメント区切り文字を使用することを通知する必要があります。
mysql
コマンドラインクライアントの場合、DELIMITER
を使用してこれを行うことができます コマンド
。たとえば、ステートメントの区切り文字をダブルセミコロンに変更するには:
DELIMITER ;;
次に、次のことができます:
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;;
ただし、この場合、トリガーにはステートメントが1つしか含まれていないため、 BEGIN ... END
複合ステートメントブロック
したがって、区切り文字の変更を完全に回避できます。
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'
)
;