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

Posted 屌丝大叔的笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql定义事件并查看事件是否执行相关的知识,希望对你有一定的参考价值。

定义事件:

-- 定义事件,删除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定义事件并查看事件是否执行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL创建事件调度器

在MySQL中执行启动事件的程序挂钩之前,是否可以建立连接?

MySQL定时执行脚本(计划任务)实例

mysql 定时任务的使用

Navicat for MySQL 设置定时任务(事件)

MySql 自动停止