MySQL創建一個固定頻率執行且自定義"開始"時間的定時任務event


drop event if exists evt_test;
create event evt_test
on schedule every 10 SECOND  -- 每10秒執行一次(second可以換成day之類的)

/* 任務的開始時間(或說MySQL系統認定的本任務開始的時間,哪怕其實那時候還沒這個任務),如果開始的時間是 now() 則會立刻do一次(類似do-while),starts可暫時理解為start at */

starts CURDATE() do  /*(注意這個時間可以當前時間點之前的時間,且對於此任務而言,如果創建此任務后的"當前時間"的秒部分(如12.13.34)不是10的正數倍(之所以要10的整數倍是因為starts CURDATE()的時間點的秒部分是0),則會等到10的整數倍的那一秒(即12.13.40)立刻do一次)*/
insert into student(Name, ClassName) values('ss','bb');

show events;  -- 顯示有哪些任務及它們的參數

alter EVENT evt_test disable;  -- 修改該任務為未啟動

/* MySQL的event中的do是可以執行多條語句的,即用begin end,但是這里必須有delimiter否則不通過,具體寫法如下:*/

delimiter $$ -- 對於event而言若要do多條語句必須有這個(是不是類似SQLServer的go; ?) drop
event if exists evt_test; create event evt_test on schedule every 10 SECOND starts CURDATE() do begin insert into student(Name, ClassName) values('ss','bb'); insert into student(Name, ClassName) values('Uk','mmm'); update student set `Name`='234m' where Name='A六'; end $$ -- $$是開頭 delimiter $$ 定義的分隔符,也可以定義為別的字符/字符串,這里必須在end后加上這個分隔符(end和$$直接要有空白符)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM