您好,我是mysql触发器的新手..这是我的第一个触发器..我试图运行但遇到此错误
hi iam new to mysql trigger .. this is my first trigger.. i m trying to run but got this error
您的SQL语法错误;查看手册中与您的MySQL服务器版本相对应的语法,以便在DECLARE x INT附近使用; SET x = new.product_price-old.product_price; 在第9行插入'
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 'DECLARE x INT; SET x = new.product_price - old.product_price; INSERT into' at line 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 ;
推荐答案
仅在BEGIN中允许使用DELARE ... END复合语句,并且必须在它的开头,在任何其他语句之前。
DECLARE is permitted only inside a BEGIN ... END compound statement and must be at its start, before any other statements.
因此,在开始时将DECLARE移开。
So move DECLARE after BEGIN.
更多推荐
创建触发器时出现mysql错误
发布评论