MYSQL利用事件和儲存過程實現執行定時任務

2022-05-15 00:53:49 字數 1009 閱讀 8144

比如有如下需求:刪除某個表中當前時間距離日期字段(create_date) 大於8分鐘的所有記錄,每30s執行一次該操作。

1.建立儲存過程test()

//刪除ljh_test表中超過8分鐘的記錄

//date_add() 增加

//date_sub()減少

//month 月份 minute 分鐘 second 秒

//例如:select date_add(now(),interval 1 month); //乙個月後的時間

create procedure test ()

begin

delete from ljh_test where create_date <= date_sub(now(),interval 8 minute);

end;

2.建立事件e_test,每30秒執行test()儲存過程

create event if not exists e_test

on schedule every 30 second

on completion preserve

do call test();

3.檢視mysql中event_scheduler是否開啟

如果在關閉狀態,需要開啟它

set global event_scheduler=1;

啟動某事件任務

alter event e_test on completion preserve enable;

關閉某事件任務

alter event e_test on completion preserve disable;

刪除某事件

drop event e_test

刪除某儲存過程

drop procedure test

mysql儲存過程中使用事件

create definer root localhost procedure createbusiness parameter1 int begin routine body goes here.declare flag int default parameter1 宣告變數flag,將引數值賦給...

mysql中使用事件和儲存過程進行定時業務的執行

因公司專案中有個贈送優惠券功能,此功能需求為 贈送出去的優惠券若24小時內沒有被領取,則自動設定為贈送失敗 過期未被領取 優惠券自動退換給贈送者。初步想法是 在mysql中建立儲存過程進行業務邏輯判斷以及操作庫,然後使用事件定時的調取儲存過程,即可完成需求。一 建立事件 1.事件簡單描述就是可以定時...

MYSQL儲存過程及事件

關於mysql下的儲存過程以及事件的建立 下面這個儲存過程主要實現的功能就是查詢表裡面半年前的資料,如果有就存到檔案,然後將資料刪除。create definer root localhost procedure newproc begin select count into count from ...