比如有如下需求:刪除某個表中當前時間距離日期字段(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 ...