本文共 1306 字,大约阅读时间需要 4 分钟。
首先在创建定时任务之前要开启event_scheduler,具体如下:
sql SET GLOBAL event_scheduler = 1;
SHOW VARIABLES LIKE 'event_scheduler';
CREATE TABLE aaa(timeline TIMESTAMP);CREATE EVENT e_test_insertON SCHEDULE EVERY 1 SECONDDO INSERT aaa VALUE(CURRENT_TIMESTAMP);
然后立马查看aaa中的内容select * from aaa
;如果为空则失败。
alter event e_test_insert disable;
delete from aaa ;
drop event e_test_insert;
show events;
create event delInvalidSession on schedule every 5 minute do delete from session where timestampdiff(minute,from_unixtime(time),now())>5;
解释:
create event delInvalidSession
创建了一个名为delInvalidSession的任务。 on schedule every 5 minute
设置没5分钟运行一次。 do 都后面就是一般的sql语句了,没有什么好奇的。 然后关于timestampdiff(minute,from_unixtime(time),now())
这个函数,解释如下,也可以自己去查阅官方文档。 from_unixtime(time)
这个函数,把数据库中以long格式存储的从’1970-01-01 00:00:00‘开始到现在的秒数,转化为日期时间格式,用于计算。这里防止另一个相关函数的解释: 最后放一张我执行的结果图: 我在写博客的同时select了一下,然后我写完上面的内容(超过5分钟),在select一下,发现之前那条记录已经被删除了,证明我的设置起作用了。转载地址:http://czbtb.baihongyu.com/