首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除旧记录的MySQL事件引发错误#1064

删除旧记录的MySQL事件引发错误#1064
EN

Stack Overflow用户
提问于 2014-06-12 08:53:05
回答 1查看 266关注 0票数 0

我正在尝试在MySQL中创建一个事件(我的第一次),它将删除"reports“表中超过3个月的所有记录。

该活动应每天凌晨3:00举行。reports表具有日期时间类型的“创建”字段。

这是我为创建事件而提出的代码:

代码语言:javascript
运行
复制
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错误指的是语法问题,但在查找了几个不同的示例之后,我仍然没有成功地将其付诸实施。

任何建议都会非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 08:57:45

您缺少了一个END,因此您应该更改分隔符。或者你忽略了BEGIN

所以,要么是这样:

代码语言:javascript
运行
复制
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 ;

或者像这样:

代码语言:javascript
运行
复制
CREATE EVENT `delete_reports`
ON SCHEDULE
    EVERY 3 DAY_HOUR
DO 
    DELETE FROM `reports` WHERE `created` < DATE_SUB(NOW(), INTERVAL 3 MONTH);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24180164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档