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-2026 CODEPRJ.COM