在mysql5中创建更新操作时触发错误?

时间:2011-02-16 06:39:54

标签: mysql sql triggers mysql-error-1064

我正在创建更新操作的触发器。但是,在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)

附近使用的语法

如果有人可以请求帮助,我们将不胜感激

2 个答案:

答案 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