在同一表上更新触发器MySQL 5.6

问题描述 投票:0回答:2

我有一个表格'foods',列有'featured','restaurant_id','retaurant_stock'。在同一条件下更新同一表上的“功能”列后,如何使用触发器或mySQL版本5.6上可用的任何其他解决方案更新列“ restaurant_stock”?计算的列在mySQL 5.6版上不可用。

这是我的触发器:

CREATE TRIGGER update_restaurant_stock BEFORE UPDATE ON foods
OR EACH ROW
BEGIN
IF NEW.featured = 1 THEN
UPDATE `foods` SET NEW.restaurant_stock = (NEW.restaurant_id);
ELSE
UPDATE `foods` SET NEW.restaurant_stock = 0;
END IF;
END

现在当我更新“功能”列时,出现以下错误消息:

#1442 - Can't update table 'foods' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

enter image description here

感谢您的帮助!

mysql database-trigger eventtrigger mysql-5.6
2个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.