站長資訊網
        最全最豐富的資訊網站

        通過實例講解mysql如何實現定時任務

        通過實例講解mysql如何實現定時任務

        自MySQL5.1.6起,增加了一個非常有特色的功能-事件調度器(Event Scheduler),可以用做定時執行某些特定任務(例如:刪除記錄、對數據進行匯總、數據備份等等),來取代原先只能由操作系統的計劃任務來執行的工作。

        更值得一提的是MySQL的事件調度器可以精確到每秒鐘執行一個任務,而操作系統的計劃任務(如:Linux的cron或Windows下的任務計劃)只能精確到每分鐘執行一次。對于一些對數據實時性要求比較高的應用(例如:股票、賠率、比分等)就非常適合。

        事件調度器有時也可以稱為臨時觸發器(temporal triggers),因為事件調度器是基于特定時間周期觸發來執行某些任務,而觸發器(Triggers)是基于某個表所產生的事件觸發的,區別也就在這里。

        一、查看是否開啟

        > show variables like 'event_scheduler';

        二、開啟事件調度器

        set global event_scheduler = on;

        這里的設置,當mysql重啟后,又會自動關閉。如果需要一直開啟,需要在my.ini中配置如下:

        (推薦學習視頻教程:mysql視頻教程)

        event_scheduler = on

        三、創建事件語法

        CREATE EVENT [IF NOT EXISTS ] event_name ON SCHEDULE schedule [ ON COMPLETION [ NOT ] PRESERVE ] [ ENABLE | DISABLE ] [ COMMENT '注釋' ] DO SQL語句;    schedule : AT TIMESTAMP [+ INTERVAL interval ] | EVERY interval [ STARTS TIMESTAMP ] [ ENDS TIMESTAMP ] interval : quantity { YEAR | QUARTER | MONTH | DAY |            HOUR | MINUTE | WEEK | SECOND |            YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND |            HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND }

        event_name:事件名,最大長度64個字符。

        schedule:執行時間。

        [ ON COMPLETION [ NOT ] PRESERVE ] :事件是否需要復用。

        [ ENABLE | DISABLE ] :事件開啟或關閉。

        四、關閉事件

        ALTER EVENT event_name DISABLE;

        五、開啟事件

        ALTER EVENT event_name ENABLE;

        六、刪除事件

        DROP EVENT [IF EXISTS ] event_name;

        七、查看所有事件

        SHOW EVENTS;

        八、事件例子

        我們先創建一個簡單的test表用于測試

        CREATE TABLE `test` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',  `now` datetime DEFAULT NULL COMMENT '時間',  PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

        事件類型有兩種,一種是間隔觸發,一種是特定時間觸發。

        我們每隔一秒向test表插入一條記錄:

        DROP EVENT IF EXISTS event_test; CREATE EVENT event_test ON SCHEDULE EVERY 1 SECOND STARTS '2017-08-22 11:57:00' ENDS '2017-08-22 12:00:00' ON COMPLETION PRESERVE ENABLE COMMENT '每隔一秒向test表插入記錄' DO INSERT INTO test VALUES(NULL, now());

        結果如圖:

        通過實例講解mysql如何實現定時任務

        相關文章教程推薦:mysql教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 99久久99久久精品国产片| 精品日韩在线视频一区二区三区| 国产精品久久国产精麻豆99网站| 久久久久久国产精品无码下载| 91久久精品91久久性色| 亚洲乱码日产精品a级毛片久久| 亚洲人成亚洲精品| 国产精品99久久久久久猫咪| 无码国模国产在线无码精品国产自在久国产 | 精品日韩亚洲AV无码| 欧美亚洲日本久久精品| 国产精品亚洲精品日韩已方| 国产精品影音先锋| 国产成人精品免费久久久久| 日韩人妻精品无码一区二区三区 | 国产精品福利区一区二区三区四区 | 亚洲精品97久久中文字幕无码| 国产高清国内精品福利99久久| 国产精品亚洲片在线观看不卡| 亚洲国产成人一区二区精品区| 日韩精品免费一线在线观看| 精品无码综合一区| 久久精品一区二区三区不卡| 下载天堂国产AV成人无码精品网站| 99riav国产精品| 久久夜色精品国产| 国产精品成人观看视频网站| 91麻豆精品国产| 精品久久久久久久无码 | 亚洲国产一成人久久精品| 欧美精品人爱a欧美精品| 久久久精品人妻无码专区不卡| 国语自产精品视频| 久久国产精品视频| 欧美精品播放| 亚洲色精品88色婷婷七月丁香| 亚洲精品字幕在线观看| 日韩精品少妇无码受不了| 久久夜色精品国产噜噜麻豆| 久久精品一本到99热免费| 国产精品偷伦视频观看免费|