mysql要實現定時執行sql語句就要用到Event
具體操作如下:
先看看看event 事件是否開啟
show variables like '%sche%';
如沒開啟,則開啟。需要數據庫超級權限
set global event_scheduler =1;
創建存儲過程 update_a (注:就是你要執行的sql語句)
mysql> create procedure update_a() update a set a.y_avg=(select avg(b.youhao) from b where a.a_id=b.a_id);
創建一個定時任務:event e_updateA
mysql> create event if not exists e_updateA
-> on schedule every 60 second ---設置60秒執行一次
-> on schedule at date_add(now(),interval 1 minute) ---在一分鍾后執行
-> on completion preserve
-> do call update_a(); ---執行update_a()存儲過程
創建Event之后,sql語句就定時執行一次。
關閉事件任務
mysql> alter event e_updateA ON
-> COMPLETION PRESERVE DISABLE;
開啟事件任務
mysql> alter event e_updateA ON
-> COMPLETION PRESERVE ENABLE;