创建触发器时出现mysql错误 [英] got mysql error when during creating trigger

查看:94
本文介绍了创建触发器时出现mysql错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我是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错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆