MySQL触发器语法?这个怎么了?

时间:2011-12-22 01:10:37

标签: mysql syntax triggers

大家好我试图创建一个触发器 我做了一个show create trigger并复制了原来的sql; 现在,当我运行它时,我得到一个语法错误。 ??任何死了

 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

1 个答案:

答案 0 :(得分: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