• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            如何寫mysql的定時(shí)任務(wù)

            mysql的定時(shí)任務(wù)一般用event(事件)來(lái)完成,觸發(fā)器無(wú)法完成。
            一、通過(guò)mysql的命令行客戶端來(lái)完成
            1、set global event_scheduler =1; //開啟event_scheduler
            執(zhí)行這個(gè)語(yǔ)句如果出現(xiàn),可在mysql的配置文檔中設(shè)置[mysqld]段中添加 event_scheduler=ON
            如果重啟mysql;這種情況下依然出錯(cuò),Error Code: 1290. The MySQL server is running with the --event-scheduler=DISABLED 
            or --skip-grant-tables option so it cannot execute this statement,這個(gè)錯(cuò)誤是說(shuō)啟動(dòng)服務(wù)器時(shí)如果指定了--skip-grant-tables選項(xiàng),則event_scheduler則自動(dòng)被設(shè)置為DISABLED。命令行或配置文件的設(shè)置都會(huì)被覆蓋。建議重現(xiàn)安裝mysql或是修改啟動(dòng)參數(shù)(在系統(tǒng)服務(wù)中指定)。

            查看event_scheduler狀態(tài):show status like '%event%'; 或SELECT @@event_scheduler;
            2、CREATE PROCEDURE Mypro() //創(chuàng)建存儲(chǔ)過(guò)程

            BEGIN
            update userinfo SET endtime = now() WHERE id = '155';
            END;
            3、創(chuàng)建event My_enevt,每隔三十秒執(zhí)行一次
            create event if not exists e_test
            on schedule every 30 second
            on completion preserve
            do call Mypro();
            4、關(guān)閉事件
            alter event e_test ON COMPLETION PRESERVE DISABLE;
            5、開啟事件
            alter event e_test ON COMPLETION PRESERVE ENABLE;
            語(yǔ)法:
            CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION
            [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement;
            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}

            示例:

            1) 首先來(lái)看一個(gè)簡(jiǎn)單的例子來(lái)演示每秒插入一條記錄到數(shù)據(jù)表
            CREATE EVENT e_test_insert ON SCHEDULE EVERY 1 SECOND DO INSERT INTO test.aaa VALUES  (CURRENT_TIMESTAMP);

            2) 5天后清空test表:
            CREATE EVENT e_test ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;

            3) 2013年7月20日12點(diǎn)整清空test表:
            CREATE EVENT e_test ON SCHEDULE AT TIMESTAMP '2013-07-20 12:00:00' DOTRUNCATE TABLE test.aaa;

            4) 每天定時(shí)清空test表:
            CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY DO TRUNCATE TABLE test.aaa;

            5) 5天后開啟每天定時(shí)清空test表:
            CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;

            6) 每天定時(shí)清空test表,5天后停止執(zhí)行:
            CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;

            7) 5天后開啟每天定時(shí)清空test表,一個(gè)月后停止執(zhí)行:
            CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP +
            INTERVAL 5 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH DO TRUNCATE TABLE test.aaa;

            [ON COMPLETION [NOT] PRESERVE]可以設(shè)置這個(gè)事件是執(zhí)行一次還是持久執(zhí)行,默認(rèn)為NOT PRESERVE
            8)
            每天定時(shí)清空test表(只執(zhí)行一次,任務(wù)完成后就終止該事件):
            CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE DO TRUNCATE TABLE test.aaa;

            [COMMENT
            comment]可以給該事件加上注釋

            2>修改事件(ALTER EVENT)
            ALTER EVENT event_name [ON SCHEDULE schedule] [RENAME TO new_event_name]
            [ON COMPLETION [NOT] PRESERVE] [COMMENT 'comment'] [ENABLE | DISABLE] [DO
            sql_statement]

            1) 臨時(shí)關(guān)閉事件
            ALTER EVENT e_test DISABLE;

            2) 開啟事件
            ALTER EVENT e_test ENABLE;

            3) 將每天清空test表改為5天清空一次:
            ALTER EVENT e_test ON SCHEDULE EVERY 5 DAY;

            3>刪除事件(DROP EVENT)

            語(yǔ)法很簡(jiǎn)單,如下所示:
            DROP EVENT [IF EXISTS] event_name

            例如刪除前面創(chuàng)建的e_test事件
            DROP EVENT e_test;

            當(dāng)然前提是這個(gè)事件存在,否則會(huì)產(chǎn)生ERROR 1513 (HY000): Unknown event錯(cuò)誤,因此最好加上IF EXISTS
            DROP EVENT IF EXISTS e_test;

            二、使用第三方工具來(lái)創(chuàng)建,推薦使用HeidiSQL網(wǎng)站:http://www.heidisql.com/,免費(fèi)的開源客戶端,由德國(guó)程序員Ansgar Becker開發(fā);這個(gè)軟件的界面有中文界面。
            打開HeidiSQL,右鍵單擊表名,選創(chuàng)建新的的菜單,再選事件即可,很方便,我們可以編輯事件的時(shí)間設(shè)置和代碼。這里定義人填寫root@localhost。

            posted on 2013-09-05 19:11 Benjamin 閱讀(2588) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)

            亚洲国产二区三区久久| 国产成人久久精品激情| 成人综合久久精品色婷婷| 久久频这里精品99香蕉久| 无码AV波多野结衣久久| 久久免费精品视频| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲国产日韩欧美久久| 亚洲精品美女久久久久99| 99麻豆久久久国产精品免费 | 伊人久久大香线蕉AV色婷婷色| 色综合久久久久无码专区| 国产真实乱对白精彩久久| 99久久夜色精品国产网站| 久久久久一区二区三区| 久久亚洲精品无码aⅴ大香| 国产精品综合久久第一页 | 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 精品久久一区二区三区| 亚洲日韩欧美一区久久久久我| 精品九九久久国内精品| 一本一本久久aa综合精品 | 99久久婷婷国产综合精品草原| 无码人妻少妇久久中文字幕蜜桃 | 久久婷婷五月综合色奶水99啪| 久久99精品久久久久久噜噜| MM131亚洲国产美女久久| 久久久午夜精品福利内容| 久久久久九九精品影院| 国产成人无码精品久久久久免费 | 亚洲国产精品综合久久一线| 国产精品美女久久久久AV福利 | 国产精品嫩草影院久久| 久久精品国产精品亚洲精品| 久久亚洲日韩精品一区二区三区| 久久99国产精品久久99小说| 狠狠色丁香久久婷婷综合_中| 狠狠色丁香婷婷久久综合| 麻豆久久久9性大片| 欧美日韩精品久久免费| 久久人人爽人人爽人人片AV不 |