创建触发器时出现mysql错误

编程入门 行业动态 更新时间:2024-10-27 04:36:50
本文介绍了创建触发器时出现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错误

本文发布于:2023-10-19 18:21:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1508367.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:触发器   错误   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!