mysql定义事件并查看事件是否执行
时间:2021-07-01 10:21:17
帮助过:4人阅读
定义事件,删除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