首页 > 解决方案 > 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 ;

在此处输入图像描述

我仍然得到这个语法错误。请注意,在我的代码中没有警告。在此处输入图像描述

标签: mysql

解决方案


函数、事件、触发器或过程通常具有类似BEGIN ... END. 当正文中只有一条语句时,可以省略 BEGIN 和 END。在这里,您省略了BEGIN,但留在了END;删除 END 或添加 BEGIN。


推荐阅读