mysql - MySQL事件语法错误更新比较日期的某些值
问题描述
我正在尝试创建此事件,但找不到语法错误。
DELIMITER //
CREATE EVENT IF NOT EXISTS auto_decline
ON SCHEDULE
EVERY 1 DAY
DO
UPDATE Appointment SET status = 'Declined' WHERE deadline < CURDATE();
END; //
DELIMITER ;
所以基本上我希望我的数据库每天检查截止日期(截止日期是带有date
格式的列)是否已经大于当前日期。但是我的系统告诉我存在语法错误。我还尝试使用 IF THEN 语句
DELIMITER //
CREATE EVENT IF NOT EXISTS auto_decline
ON SCHEDULE
EVERY 1 DAY
DO
IF deadlineToAccept BETWEEN offerSentTime AND CURDATE()
THEN
UPDATE PatientReceivedAppointment SET status = 'Declined';
END IF;
END; //
DELIMITER ;
解决方案
函数、事件、触发器或过程通常具有类似BEGIN ... END
. 当正文中只有一条语句时,可以省略 BEGIN 和 END。在这里,您省略了BEGIN,但留在了END;删除 END 或添加 BEGIN。
推荐阅读
- azure-ad-b2c - Azure B2C - 我的客户想要发送他在托管政策中添加的自定义声明的国家代码值
- c# - 如何在 PowerShell 中逐行使用 C# 从 URI 读取文件?
- c# - ANTLR4 - VisitChildren 返回 null,即使孩子返回某个对象
- python - form.save() 不起作用我的 form.save 用于更新数据不起作用
- bash - bash 配置文件别名“test”破坏了 git 完成
- javascript - 如何处理嵌套的useEffect?
- react-router - 无法从 HOC 组件中的 useHistory() 读取历史记录
- javascript - 道具未传递到 Material UI 按钮文本
- visual-studio - 什么设置会切换 End if 和 End Sub 的自动创建?
- r - 将 WRF 文件转换为光栅堆栈!投影