码迷,mamicode.com
首页 > 数据库 > 详细

mysql定义事件并查看事件是否执行

时间:2020-07-03 01:02:21      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:删除   datetime   serve   val   show   oba   变量   mit   not   

定义事件:

-- 定义事件,删除10天前数据,并指定每5秒执行一次;Event_syslog为事件名称
CREATE EVENT IF NOT EXISTS Event_syslog ON SCHEDULE EVERY 5 SECOND STARTS curdate()
ON COMPLETION PRESERVE
DO 

BEGIN
        -- 定义时间变量
        DECLARE dattime DATETIME;
        set dattime = DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL 10 DAY),%Y%m%d);-- 10天前
        
        DELETE FROM syslog
        WHERE DATE_FORMAT(CreateTime,%Y%m%d)<dattime
        ORDER BY CreateTime 
        limit 100;-- 每次删除100条
END

一开始事件没有执行,后来通过以下命令发现任务里面根本就没有该事件。

show processlist;

技术图片

然后再通过下面的命令查看事件是否启用?

show variables like event_scheduler;

技术图片

通过上图可以看到,事件没有启用,那么我们启用事件就行了。 执行以下命令:

set global event_scheduler=on;

然后再次执行 show processlist; 就行了,结果如下图:

技术图片

然后你定义的事件也可以顺利执行了。 

参考文章:https://blog.csdn.net/qq_27559331/article/details/95757305

mysql定义事件并查看事件是否执行

标签:删除   datetime   serve   val   show   oba   变量   mit   not   

原文地址:https://www.cnblogs.com/subendong/p/13227831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!