我正在创建更新操作的触发器。但是,在MySQL5中创建触发器时会出错。
触发:
CREATE TRIGGER `test`.`Employee_Trigger_Update` AFTER UPDATE ON `test`.`employee` FOR EACH ROW BEGIN INSERT into `test`.`Employee_log` (id,description) VALUES (old.id, CONCAT('Id with ' , old.id ,' is modified from ' , OLD.start_date , ' to ' , NEW.start_date) );
错误
错误代码:1064您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 在''第8行(0 ms)
附近使用的语法
如果有人可以请求帮助,我们将不胜感激
答案 0 :(得分:2)
您需要使用分号以外的其他分隔符
DELIMITER $$
CREATE TRIGGER `test`.`Employee_Trigger_Update`
AFTER UPDATE ON `test`.`employee`
FOR EACH ROW
BEGIN
INSERT into `test`.`Employee_log`
(id,description)
VALUES
(old.id, CONCAT('Id with ',old.id,' is modified from ',OLD.start_date, ' to ', NEW.start_date));
END $$
DELIMITER ;
答案 1 :(得分:1)
我看到的一件事,你在触发器声明结束时没有 - END;
,请参阅示例和文档here