触发器创建期间出现错误1064

时间:2015-02-09 08:45:37

标签: mysql sql triggers

我想在其中一个表上创建一个触发器,它非常简单,只需设置一个值 - 但我总是得到错误1064

CREATE TRIGGER `trigger_TEST` BEFORE INSERT ON `TEST_table` 
FOR EACH ROW 
BEGIN
        IF NEW.as_src = 13335 THEN
            SET NEW.peer_as_src = 13335;
        END IF
END

并收到此错误:

  

错误SQL(1064):SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第5行

知道为什么吗?

1 个答案:

答案 0 :(得分:3)

您需要更改默认分隔符

delimiter |
CREATE TRIGGER `trigger_TEST` BEFORE INSERT ON `TEST_table` 
FOR EACH ROW 
BEGIN
        IF NEW.as_src = 13335 THEN
            SET NEW.peer_as_src = 13335;
        END IF;
END
|
delimiter ;

否则语句将在第一个;结束,这将使触发器定义不完整。