MySQL设置定时任务执行事务


首先在创建定时任务之前要开启event_scheduler,具体如下:

SET GLOBAL event_scheduler = 1;

查看是否开启成功:

SHOW VARIABLES LIKE 'event_scheduler';

然后自己先用下面的小例子测试一下,看是不是真的可以:

CREATE TABLE aaa(timeline TIMESTAMP);
CREATE EVENT e_test_insert
ON SCHEDULE EVERY 1 SECOND
DO INSERT aaa VALUE(CURRENT_TIMESTAMP);

然后立马查看aaa中的内容,每个1秒插入一条新数据,否则失败:

 select * from aaa;

测试完了一定要关闭这个测试定时任务:

alter event e_test_insert disable;

把aaa表清空:

 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())这个函数,解释如下,也可以自己去查阅官方文档。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM