2011-12-22 56 views
0

大家好我試圖重新創建一個觸發器 我做了一個顯示創建觸發器並複製了原始的sql; 現在,當我運行它我得到一個語法錯誤。 ??任何IdeadMySQL觸發語法?這個有什麼不對?

CREATE DEFINER=`root`@`localhost` TRIGGER `update_cached_tables_for_product_insert` AFTER INSERT ON `Product` FOR EACH ROW BEGIN INSERT INTO ProductOffercount (product_id, num_offers) VALUES (NEW.id, 0); END 

回答

0

Mysql的查詢後,會將;(即觸發定義的一部分)作爲整個語句的結束。因此你會得到語法錯誤。

您需要CREATE TRIGGER條款重新定義分隔符:

delimiter | 

CREATE DEFINER=`root`@`localhost` 
TRIGGER `update_cached_tables_for_product_insert` AFTER INSERT ON `Product` 
    FOR EACH ROW BEGIN 

     INSERT INTO ProductOffercount (product_id, num_offers) VALUES (NEW.id, 0); 

    END; 
| 

delimiter ; 

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html