MySQL設定定時任務執行事務
阿新 • • 發佈:2020-08-10
首先在建立定時任務之前要開啟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())
這個函式,解釋如下,也可以自己去查閱官方文件。