尝试创建重置 soldout
状态的 MySQL 事件(表示为 1
)。
我尝试创建的逻辑是一个简单的 IF 语句。
如果soldout
= 1
AND Quantity
> 0
在同一行
将售罄
更新为0
这是我的事件
CREATE EVENT soldoutreset
ON SCHEDULE EVERY 5 MINUTE
DO
IF db.Inventory.soldout = 1
AND db.Inventory.Quantity > 0 THEN
UPDATE db.Inventory SET soldout = 0
WHERE soldout = 1 AND Quantity > 1
END IF;
这会导致错误,第 9 行的“END IF”
#1064 - 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 'END IF' at line 9
谁能告诉我为什么这不起作用吗?
最佳答案
这应该有效,您缺少语法的一部分:
DELIMITER |
CREATE EVENT soldoutreset
ON SCHEDULE EVERY 5 MINUTE
DO
BEGIN
IF db.Inventory.soldout = 1 AND db.Inventory.Quantity > 0 THEN
UPDATE db.Inventory SET soldout = 0
WHERE soldout = 1 AND Quantity > 1;
END IF;
END |
DELIMITER ;
更新:
如果事件未按预期运行,可能是因为事件调度程序已关闭。它可以通过以下方式启用:
SET GLOBAL event_scheduler = ON;
关于MySQL 事件 If 语句 END IF 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52863367/