一.首先介紹基本操作過程
1 前言
利用navicat工具來寫存儲過程及定時執行,此文章是按照自身經驗總結的,僅作爲記錄使用。
2 步驟
2.1 新建過程
2.2 在函數體寫你需要執行的代碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
2.3 創建一個事件
2.3.1 新建事件
2.3.2 定義需要調用的過程
2.3.3 填寫你定時計劃
代碼預覽如下:
1 2 3 4 |
|
3 異常
如果發現,你步驟都設置完了,還沒有起作用,那可能是定時器開關沒打開。
查看是否有開啓,方法 show variables like 'event%';
如果是OFF,則用SET GLOBAL event_scheduler = 1;或者SET GLOBAL event_scheduler = ON;開啓。開啓後其Value則爲ON。
以上轉自:https://www.cnblogs.com/fanbi/p/9361204.html
二.定時事件的停止與開啓
1、創建事件
DELIMITER $$
#創建一個定時分配訂單的事件
CREATE event jobOrderSplit
#開啓定時
ON SCHEDULE
#3分鐘運行一次
EVERY 3 MINUTE
#每天的9點10時,3分鐘分一次單
STARTS '2015-09-23 09:10:00'
DO
BEGIN
#調用自動分單的存儲過程
CALL automaticSplitting();
END;
DELIMITER;
2、開啓事件
#設置啓動的全局變量
set global event_scheduler=1/ON;
#啓動單獨一個事件
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
3、停止事件
#設置關閉的全局變量
set global event_scheduler=0/OFF;
#啓動單獨一個事件
ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
另:如果事件全部變量是關閉的,就算開啓單獨的事件也不會執行
查看mysql全局變量事件是否開啓 ON:開 OFF:關
SHOW VARIABLES LIKE 'event_scheduler';
以上轉自:https://www.iteye.com/blog/wangduorong-2300769
三.可能遇到的問題
定時事件event_scheduler的問題
1.查看事件是否開啓
1-1.show variables like
'event_scheduler'
;
1-2.select @@event_scheduler;
1-3.show processlist;
如果event_scheduler=off 沒有開啓 on開啓
1-4開啓event_scheduler
set
global
event_scheduler =
'on'
;
//注意:還是要在my.cnf中添加event_scheduler=ON。否則mysql重啓事件又會回到原來的狀態了。
2.查看事件
select * from mysql.event
以上轉自:
https://blog.csdn.net/w892824196/article/details/86622287