Mysql定時任務job實現案例
阿新 • • 發佈:2018-12-15
現在的專案業務需要用到mysql的job。因為之前接觸過oracle job。現在整理一下MySQL得job。
#檢視當前是否已開啟事件排程器
show variables like 'event_scheduler';
#要想保證能夠執行event事件,就必須保證定時器是開啟狀態,預設為關閉狀態
set global event_scheduler =1;
#或者set GLOBAL event_scheduler = ON;
delimiter $$ # 每天晚上01:00 create event SetEVToInvalidStatus_AtNight_0100 #on schedule every 1 DAY starts timestamp '2017-04-24 10:00:00' # 測試使用 10 MINUTE on schedule every 10 MINUTE starts timestamp '2018-11-30 11:10:10' do begin start transaction; #開始事務 # 表1 #select * from customer where commonPool=""; # 表2 update customer set commonPool=1 where cust_sex='1'; commit; #提交事務 end $$ delimiter ;
# 停止
ALTER EVENT SetEVToInvalidStatus_AtNight_0100 DISABLE;
# 開啟
alter event SetEVToInvalidStatus_AtNight_0100 enable;
# 檢視狀態
select * from mysql.event
最後結果:
注意事項:真實的開發環境中,會遇到mysql服務重啟或者斷電的情況,此時則會出現事件排程器被關閉的情況,所有事件都不在起作用,要想解決這個辦法,則需要在mysql.ini檔案中加入event_scheduler = ON; 的語句