關於MySql 設定一個間隔時間 執行一個事件

CYLiberty發表於2019-01-14

Mysql事件任務開發記錄

  1. 我想要通過資料庫定時清理資料,使用event
  2. 首先建立表、儲存過程
  3. 儲存過程
DELIMITER // 
create procedure delproc()
  BEGIN
  delete  from machtimesection where endd<= (select hour(curtime()));
 END //
DELIMITER ;

建立一個事件

create event delagosection 	//事件名
ON SCHEDULE   EVERY 1 hour 	//on schedule代表計劃任務  every代表事件間隔
STARTS '2019-01-14 15:00:00' //設定事件開始算起的時間
on completion  preserve  	//讓此事件執行完畢後不被drop
ENABLE 						//代表該事件的執行狀態,系統會根據此來判斷是否執行
do call delproc(); 			//do代表事件的內容,可以是SQL語句

注意:

  1. 在建立事件之後,事件有可能不執行,是因為你的資料庫可能沒開啟事件執行條件,使用sql語句 show variables like %schedule%;來檢視 event_scheduler 的值是否為開啟狀態。如果為off ,使用SQL語句 set global event_scheduler=1;開啟。
  2. 當你在事件中使用了starts設定 開始時間時,事件的間隔執行時間就是從starts開始算起,並不是從當前時間開始算起的。只要:
    起始時間 + (間隔時間)x 倍數 = 當前時間
    那麼該事件都會執行。

參考

http://www.cnblogs.com/hanlong/p/5715583.html
https://blog.csdn.net/lixia755324/article/details/53923856

相關文章