嗨,我刚接触到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 ;
答案 0 :(得分:2)
DECLARE只允许在BEGIN ... END复合语句中使用,并且必须在任何其他语句之前的开头。
所以在BEGIN之后移动DECLARE。