mysql设置定时任务
生活随笔
收集整理的這篇文章主要介紹了
mysql设置定时任务
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
聯(lián)系我吧 http://qq.bishijie1999.top
mysql設(shè)置定時任務(wù)
一、
首先我們要開啟 mysql的定時策略
執(zhí)行
如果數(shù)據(jù)為 off表示沒開啟 開啟
set global event_scheduler=1;二、
創(chuàng)建procedure(存儲過程)
use test; delimiter // create procedure test_proce() begin insert into weuse(name,created_at,updated_at) values('hello',now(),now()); end// delimiter ;上面的代碼說明:
- use test; 這個誰都知道,使用某個數(shù)據(jù)庫,這里要強調(diào)的是存儲過程一定是對于某個數(shù)據(jù)庫而言的,所以必須要選中一個數(shù)據(jù)庫才能創(chuàng)建成功。
- delimiter // 這個是將mysql中以;(分號)結(jié)尾的規(guī)定修改為以//(雙斜杠)為語句結(jié)束符,因為存儲過程里可以有多條sql
語句,里面的sql語句都以;號結(jié)尾,如果回車了那么系統(tǒng)會當做sql語句直接執(zhí)行了,我們希望的是先定義這一系列sql語句而先不執(zhí)行,所以要改下操作結(jié)束符。當然你在改后一定要改回來,大家可以看到最后一行有對應(yīng)的修改回來的語句。 - 下面的是一起輸入的,可以知道分別是創(chuàng)建存儲過程test_proce(),名稱可以隨便起的,然后是在begin
–end之間是定義一系列sql語句的就可以了,記住最后end結(jié)尾要以之前修改后的結(jié)尾符結(jié)束。
三
設(shè)置定時任務(wù)
create event second_event on schedule every 1 second on completion preserve disable do call test_proce();代碼說明:
- 上面為整體代碼,敲完再寫分號 第一行create event
- day_event是創(chuàng)建名為second_event的事件,注意此處沒有括號
- 第二行是創(chuàng)建周期定時的規(guī)則,本處的意思是每秒鐘執(zhí)行一次 第三行on completion preserve
- disable是表示創(chuàng)建后并不開始生效。 第四行do call
- test_proce()是該event(事件)的操作內(nèi)容,表示調(diào)用我們剛剛創(chuàng)建的test_proce()存儲過程。
查看定時任務(wù)event(事件),可以查看本機所有的事件
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;四、開啟已經(jīng)創(chuàng)建好的event(事件)
alter event second_event on completion preserve enable;//開啟定時任務(wù) alter event second_event on completion preserve disable;//關(guān)閉定時任務(wù)五、常見周期定時規(guī)則
周期執(zhí)行–關(guān)鍵字 EVERY
單位有:second,minute,hour,day,week(周),quarter(季度),month,year
如:
在具體某個時間執(zhí)行–關(guān)鍵字 AT
如:
on schedule at current_timestamp()+interval 5 day //5天后執(zhí)行 on schedule at current_timestamp()+interval 10 minute //10分鐘后執(zhí)行 on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9點50執(zhí)行在某個時間段執(zhí)行–關(guān)鍵字STARTS ENDS
如:
on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后開始每天都執(zhí)行執(zhí)行到下個月底 on schedule every 1 day ends current_timestamp()+interval 5 day //從現(xiàn)在起每天執(zhí)行,執(zhí)行5天Event事件,可以查看,用sql命令
SELECT * FROM information_schema.EVENTS;//查看所有事件屬性 SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;//查看主要幾個屬性總結(jié)
以上是生活随笔為你收集整理的mysql设置定时任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java项目中使用的jar包出错怎么办
- 下一篇: ssl mybatis实现数据库字段的加