我正在尝试在MySQL中创建一个事件(我的第一次),它将删除"reports“表中超过3个月的所有记录。
该活动应每天凌晨3:00举行。reports表具有日期时间类型的“创建”字段。
这是我为创建事件而提出的代码:
CREATE
EVENT `delete_reports`
ON SCHEDULE
EVERY 3 DAY_HOUR
DO BEGIN
DELETE FROM `reports` WHERE `created` < DATE_SUB(NOW(), INTERVAL 3 MONTH)但这会引发以下错误:
#1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以便在第6行使用正确的语法。
我理解1064错误指的是语法问题,但在查找了几个不同的示例之后,我仍然没有成功地将其付诸实施。
任何建议都会非常感谢!
发布于 2014-06-12 08:57:45
您缺少了一个END,因此您应该更改分隔符。或者你忽略了BEGIN。
所以,要么是这样:
DELIMITER $$
CREATE EVENT `delete_reports`
ON SCHEDULE
EVERY 3 DAY_HOUR
DO BEGIN
DELETE FROM `reports` WHERE `created` < DATE_SUB(NOW(), INTERVAL 3 MONTH);
END $$
DELIMITER ;或者像这样:
CREATE EVENT `delete_reports`
ON SCHEDULE
EVERY 3 DAY_HOUR
DO
DELETE FROM `reports` WHERE `created` < DATE_SUB(NOW(), INTERVAL 3 MONTH);https://stackoverflow.com/questions/24180164
复制相似问题