mysql實(shí)現(xiàn)設(shè)置定時(shí)任務(wù)的方法分析
本文實(shí)例講述了mysql實(shí)現(xiàn)設(shè)置定時(shí)任務(wù)的方法。分享給大家供大家參考,具體如下:
今天遇到了個(gè)需要每天定時(shí)執(zhí)行的任務(wù),在mysql數(shù)據(jù)庫(kù)里面提供了這樣的功能,正好整理下分享出來(lái)。
1.首先檢查是否開(kāi)啟了定時(shí)任務(wù)
查看event是否開(kāi)啟 :
SHOW VARIABLES LIKE '%event_sche%';
將事件計(jì)劃開(kāi)啟 :
SET GLOBAL event_scheduler = 1;
將事件計(jì)劃關(guān)閉 :
SET GLOBAL event_scheduler = 0;
關(guān)閉事件任務(wù) :
ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
開(kāi)啟事件任務(wù) :
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
查看事件任務(wù) :
SHOW EVENTS ;
2.創(chuàng)建一個(gè)存儲(chǔ)過(guò)程
DELIMITER //
DROP PROCEDURE IF EXISTS p_test//
CREATE PROCEDURE p_test()
BEGIN
INSERT INTO test(name, create_time) values('testName', now());
END//
3.設(shè)置定時(shí)任務(wù)調(diào)用這個(gè)存儲(chǔ)過(guò)程(從2015.8.8 1點(diǎn)每十秒執(zhí)行一次)
DROP EVENT IF EXISTS e_test// CREATE EVENT e_test ON SCHEDULE EVERY 10 second STARTS TIMESTAMP '2015-08-08 01:00:00' ON COMPLETION PRESERVE DO BEGIN CALL p_test(); END//
備注:在event事件中:ON SCHEDULE 計(jì)劃任務(wù),有兩種設(shè)定計(jì)劃任務(wù)的方式:
1. AT 時(shí)間戳,用來(lái)完成單次的計(jì)劃任務(wù)。
2. EVERY 時(shí)間(單位)的數(shù)量時(shí)間單位[STARTS 時(shí)間戳] [ENDS時(shí)間戳],用來(lái)完成重復(fù)的計(jì)劃任務(wù)。
在兩種計(jì)劃任務(wù)中,時(shí)間戳可以是任意的TIMESTAMP 和DATETIME 數(shù)據(jù)類(lèi)型,時(shí)間戳需要大于當(dāng)前時(shí)間。
在重復(fù)的計(jì)劃任務(wù)中,時(shí)間(單位)的數(shù)量可以是任意非空(Not Null)的整數(shù)式,時(shí)間單位是關(guān)鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。
提示: 其他的時(shí)間單位也是合法的如:QUARTER, WEEK, YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND, MINUTE_SECOND,不建議使用這些不標(biāo)準(zhǔn)的時(shí)間單位。
[ON COMPLETION [NOT] PRESERVE]
ON COMPLETION參數(shù)表示"當(dāng)這個(gè)事件不會(huì)再發(fā)生的時(shí)候",即當(dāng)單次計(jì)劃任務(wù)執(zhí)行完畢后或當(dāng)重復(fù)性的計(jì)劃任務(wù)執(zhí)行到了ENDS階段。而PRESERVE的作用是使事件在執(zhí)行完畢后不會(huì)被Drop掉,建議使用該參數(shù),以便于查看EVENT具體信息。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL查詢(xún)技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解
最近需要批量更新大量數(shù)據(jù),習(xí)慣了寫(xiě)sql,所以還是用sql來(lái)實(shí)現(xiàn),下面這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL批量更新的方式,需要的朋友可以參考下2023-02-02
MySQL數(shù)據(jù)庫(kù)同時(shí)查詢(xún)更新同一張表的方法
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)同時(shí)查詢(xún)更新同一張表的方法,需要的朋友可以參考下2017-09-09
Navicat連接linux虛擬機(jī)上的MySQL可能遇到的問(wèn)題及排查方法
這篇文章主要介紹了Navicat連接linux虛擬機(jī)上的MySQL可能遇到的問(wèn)題以及如何排查,本文給大家展示了問(wèn)題描述及解決方法,需要的朋友可以參考下2024-02-02
MySQL中distinct與group by之間的性能進(jìn)行比較
這篇文章主要針對(duì)MySQL中distinct與group by之間的性能進(jìn)行比較,內(nèi)容比較詳細(xì),很直觀的能看出比較結(jié)果,感興趣的小伙伴們可以參考一下2015-11-11
mysql子查詢(xún)(單行子查詢(xún),多行子查詢(xún),多列子查詢(xún))
本文主要介紹了mysql子查詢(xún)(單行子查詢(xún),多行子查詢(xún),多列子查詢(xún)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
詳解MySQL用事件調(diào)度器Event Scheduler創(chuàng)建定時(shí)任務(wù)
事件調(diào)度器(Event Scheduler)是在MySQLv5.1.6中新增的一個(gè)功能,它相當(dāng)于一個(gè)定時(shí)器,可以在指定的時(shí)間點(diǎn)執(zhí)行一條SQL語(yǔ)句或一個(gè)語(yǔ)句塊,也可以用于在固定間隔重復(fù)執(zhí)行。下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)在MySQL中如何用事件調(diào)度器Event Scheduler創(chuàng)建定時(shí)任務(wù)2016-08-08
mysql中sum float類(lèi)型使用小數(shù)點(diǎn)的方法
使用sum示和時(shí)如果是float類(lèi)型的數(shù)據(jù)就會(huì)出現(xiàn)小數(shù)點(diǎn)了,那么要如何解決這個(gè)問(wèn)題,下面介紹二種方法2013-11-11
Mysql查看數(shù)據(jù)庫(kù)時(shí)區(qū)并設(shè)置時(shí)區(qū)的方法
這篇文章主要介紹了Mysql查看數(shù)據(jù)庫(kù)時(shí)區(qū)并設(shè)置時(shí)區(qū)的方法,設(shè)置時(shí)區(qū)的方式可以通過(guò)mysql命令行模式下動(dòng)態(tài)修改以及通過(guò)修改配置文件來(lái)修改時(shí)區(qū),需要的朋友可以參考下2024-02-02

