mysql 定時任務(wù)從5.1版本開始引入,又叫做臨時觸發(fā)器,但是與普通觸發(fā)器不同的是,普通觸發(fā)器是通過操作數(shù)據(jù)表的每行數(shù)據(jù)而觸發(fā)的事件,而它是通過時間點或者時間周期觸發(fā)
先來看一下它的語法:
DELIMITER $$ -- SET GLOBAL event_scheduler = ON$$ -- required for event to execute but not create CREATE /* [DEFINER = { user | CURRENT_USER }] */ EVENT `event1` ON SCHEDULE /* uncomment the example below you want to use */ -- scheduleexample 1: run once -- AT 'YYYY-MM-DD HH:MM.SS'/CURRENT_TIMESTAMP { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] } -- scheduleexample 2: run at intervals forever after creation -- EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] -- scheduleexample 3: specified start time, end time and interval for execution /* EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] STARTS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1[HOUR|MONTH|WEEK|DAY|MINUTE|...] } ENDS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] } */ /* [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] */ DO BEGIN (sql_statements) END $$ DELIMITER ;
基本上通過上面的語法說明已經(jīng)了解到如何使用了,下面針對每種方式可以再寫個小栗子
1,在某個時間點觸發(fā)(執(zhí)行一次):
DELIMITER $$ CREATE EVENT `bdhp`.`e_e1` ON SCHEDULE /* 只執(zhí)行一次 */ /* AT '2015-02-03 16:07.00' *//* 某一時間點 */ /* AT '2015-02-03 16:47.20' + INTERVAL 40 second *//* 某一時間點 + 一段時間 */ AT CURRENT_TIMESTAMP + INTERVAL 40 SECOND /* 當(dāng)前時間點 + 一段時間 */ DO BEGIN INSERT INTO t_sys_log(sn) VALUES ( ' 55555 ' ); END $$ DELIMITER ;
2,按周期執(zhí)行,無限次數(shù)
DELIMITER $$ CREATE EVENT `e_e2` ON SCHEDULE EVERY 1 MINUTE DO BEGIN INSERT INTO t_sys_log(sn) VALUES ( ' 55555 ' ); END $$ DELIMITER ;
3,在某一時間段內(nèi),按周期執(zhí)行(ends 不寫則表示從某一時間點開始執(zhí)行)
DELIMITER $$ CREATE EVENT `e_e3` ON SCHEDULE EVERY 1 SECOND STARTS CURRENT_TIMESTAMP ENDS ' 2015-02-03 16:15.00 ' DO BEGIN INSERT INTO t_sys_log(sn, USER_NAME ) VALUES ( ' test ' , ' ttt-55 ' ); END $$ DELIMITER ;
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
