在创建触发器时遇到mysql错误

时间:2013-04-18 21:13:36

标签: mysql sql triggers

嗨,我刚接触到mysql触发器..这是我的第一个触发器..我试图运行但是出现了这个错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在'DECLARE x INT附近; SET x = new.product_price - old.product_price;   插入'第9行

delimiter $$

CREATE TRIGGER product_update

BEFORE update ON w3xab_virtuemart_product_prices
FOR EACH ROW
BEGIN

IF (new.product_price <> old.product_price)
THEN 

    DECLARE x decimal(10,2) default 0;
    SET x = new.product_price - old.product_price;
    INSERT into product_price_log(virtuemart_product_id, old_product_price, new_product_price, product_price_update, price_update_date)
    VALUES (new.virtuemart_product_id, old.product_price, new.product_price, new.x, curtime());


END IF;
END$$

delimiter ;

1 个答案:

答案 0 :(得分:2)

DECLARE只允许在BEGIN ... END复合语句中使用,并且必须在任何其他语句之前的开头。

所以在BEGIN之后移动DECLARE。