2015-02-09 88 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