2015-02-09 93 views
1

我想在一个表上创建触发器,它是非常简单,只需设置一个值 - 但我总是得到错误1064错误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 

而得到这个错误:

Error SQL (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5

任何想法为什么?

回答

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 ; 

否则该语句将在第一;这将使得触发器定义不完全结束。

+0

[BEGIN..END](https://dev.mysql.com/doc/refman/5.6/en/begin-end.html)和[触发语法和示例](https://dev.mysql .com/doc/refman/5.6/en/trigger-syntax.html)以供参考。 – Schwern 2015-02-09 08:55:03

+0

谢谢 - 试图改变分隔符,但可能我有一些语法错误 - 现在一切工作正常:) – user1908583 2015-02-09 08:58:29

+0

什么错误?你如何执行这个? – 2015-02-09 09:00:44