定時任務
週期任務
檢視命令
`show variables like '%event_sche%';`
顯示的event_scheduler為off時用以下命令開啟
`set global event_scheduler=1;`
注意:以上的改法在資料庫重啟後將會恢復為原來狀態,要想資料庫重啟後也可以讓event_scheduler開啟,則需要在配置檔案my.ini的設定。修改如下,然後重啟mysql服務即可。
`[mysqld]event_scheduler=on //這一行加入mysqld標籤下`
建立procedure(儲存過程)
建立儲存過程
use test;
delimiter //
create procedure down_goods()
begin
update df_goods_sku set `status` = 0 where `status`=1 and down_time < now();
end//
delimiter ;
上面的**說明:
use test; 這個誰都知道,使用某個資料庫,這裡要強調的是儲存過程一定是對於某個資料庫而言的,所以必須要選中乙個資料庫才能建立成功。
delimiter // 這個是將mysql中以;(分號)結尾的規定修改為以//(雙斜槓)為語句結束符,因為儲存過程裡可以有多條sql 語句,裡面的sql語句都以;號結尾,如果回車了那麼系統會當做sql語句直接執行了,我們希望的是先定義這一系列sql語句而先不執行,所以要改下操作結束符。當然你在改後一定要改回來,大家可以看到最後一行有對應的修改回來的語句。
下面的是一起輸入的,可以知道分別是建立儲存過程test_proce(),名稱可以隨便起的,然後是在begin –end之間是定義一系列sql語句的就可以了,記住最後end結尾要以之前修改後的結尾符結束。
create procedure down_goods()
begin
update df_goods_sku set `status` = 0 where `status`=1 and down_time < now();
end//
建立定時任務
create event down_good
on schedule every 10 second
on completion preserve disable
do call down_goods();
**說明:
上面為整體**,敲完再寫分號
第一行create event day_event是建立名為second_event的事件,注意此處沒有括號
第二行是建立週期定時的規則,本處的意思是每秒鐘執行一次
第三行on completion preserve disable是表示建立後並不開始生效。
第四行do call test_proce()是該event(事件)的操作內容,表示呼叫我們剛剛建立的test_proce()儲存過程。
檢視定時任務event(事件),可以檢視本機所有的事件
`select event_name,event_definition,interval_value,interval_field,status from information_schema.events;`
開啟已經建立好的event(事件)
alter event down_good on completion preserve enable; //開啟定時任務
alter event down_good on completion preserve disable;//關閉定時任務
、常見週期定時規則
週期執行–關鍵字 every
單位有:second,minute,hour,day,week(周),quarter(季度),month,year
如:on schedule every 1 second //每秒執行1次
on schedule every 2 minute //每兩分鐘執行1次
on schedule every 3 day //每3天執行1次
在具體某個時間執行–關鍵字 at
如:on schedule at current_timestamp()+interval 5 day //5天後執行
on schedule at current_timestamp()+interval 10 minute //10分鐘後執行
on schedule at '2016-10-01 21:50:00' //在2023年10月1日,晚上9點50執行
在某個時間段執行–關鍵字starts ends
如:on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天後開始每天都執行執行到下個月底
on schedule every 1 day ends current_timestamp()+interval 5 day //從現在起每天執行,執行5天
mysql定時器 教程 mysql定時任務
自 mysql5.1.6起,增加了乙個非常有特色的功能 事件排程器 event scheduler 可以用做定時執行某些特定任務 例如 刪除記錄 對資料進行彙總等等 來取代原先只能由作業系統的計畫任務來執行的工作。更得 一提的是mysql的事件排程器可以精確到每秒鐘執 自 mysql5.1.6起,增...
mysql 定時器概念 MySQL定時器
mysql定時器 建立測試表 create table t v varchar 100 not null engine innodb default charset utf8 建立定時器 呼叫的儲存過程 delimiter drop procedure if exists e test create...
mysql 定時器概念 Mysql 定時器
定時任務 週期任務 檢視命令 show variables like event sche 顯示的event scheduler為off時用以下命令開啟 set global event scheduler 1 注意 以上的改法在資料庫重啟後將會恢復為原來狀態,要想資料庫重啟後也可以讓event s...