![](/img/trans.png)
[英]'WHERE' condition in an UPDATE TRIGGER giving syntax error :mysql version 5.7
[英]Update trigger MySQL giving syntax error
在向其他表插入行时,我想创建触发器以对表进行更新,但是我收到了这样的语法错误:
CREATE TRIGGER quantity AFTER INSERT ON sale_items
FOR EACH ROW
BEGIN
update products set quantity = quantity -1 where id =(
SELECT product_id
FROM sale_items
ORDER BY id desc
LIMIT 1)
END;
错误:
#
1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以找到在第7行的“ END”附近使用正确的语法
这似乎是一个愚蠢的触发器。 为什么要使用子查询来获取最新的更新ID? 应该可以通过new
:
DELIMITER //
CREATE TRIGGER quantity AFTER INSERT ON sale_items
FOR EACH ROW
BEGIN
update products
set quantity = quantity - 1
where id = new.product_id
END//
DELIMITER ;
在触发器中使用适当的Delimiter,正确的代码是:
DELIMITER //
CREATE TRIGGER quantity AFTER INSERT ON sale_items
FOR EACH ROW
BEGIN
update products set quantity = quantity - 1
where id = new.product_id ;
END//
DELIMITER ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.