mysql定時器 教程 Mysql 定時器

2021-10-22 06:55:42 字數 2526 閱讀 1256

定時任務

週期任務

檢視命令

`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...