国产福利在线播放|久久精品福利网站免费|国产呻吟视频在线观看|日韩一区二区三区免费高清|久996视频精品免费观看|欧美日本在线一区二区三区|在线最新无码经典无码免費資訊|国产午夜亚洲精品国产成人最大

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
服務(wù)中心

Mysql任務(wù)調(diào)度Event不執(zhí)行解決方法

出現(xiàn)Mysql任務(wù)調(diào)度Event不執(zhí)行的時(shí)候,小編采用的方法如下:

方法一:找到當(dāng)前使用的 .cnf 文件,在 [mysqld] 的下面加入如下行

event_scheduler=1 。

MySQL5.1.x 版本中引入了一項(xiàng)新特性 EVENT ,顧名思義就是事件、定時(shí)任務(wù)機(jī)制,在指定的時(shí)間單元內(nèi)執(zhí)行特定的任務(wù),因此今后一些對(duì)數(shù)據(jù)定時(shí)性操作不再依賴外部程序,而直接使用數(shù)據(jù)庫本身提供的功能。此功能是對(duì) Oracle 的 Job/Schedule 的模仿, 5.1.X 版本以上才支持。

創(chuàng)建 EVENT 語法如下:

CREATE

[DEFINER = { user | CURRENT_USER }]

EVENT

[IF NOT EXISTS]

event_name

ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE | DISABLE ON SLAVE]

[COMMENT ''comment'']

DO sql_statement;


schedule:

AT timestamp [+ INTERVAL interval]

| EVERY interval

[STARTS timestamp [+ INTERVAL interval]]

[ENDS timestamp [+ INTERVAL interval]]


interval:

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

例如創(chuàng)建一個(gè)每 30 秒清空 tableA 數(shù)據(jù)的任務(wù)

CREATE EVENT E_DELETE_ASO_TOKEN ON SCHEDULE EVERY 30 SECOND DO DELETE FROM tableA ;

默認(rèn) EVENT 支持是沒有啟動(dòng)的,可以通過下面的命令來查看狀態(tài):

Select @@event_scheduler;

如果返回 OFF ,則需要執(zhí)行下面的命令啟動(dòng):

SET GLOBAL event_scheduler = ON;

好了,上面雖然啟動(dòng)了 EVENT ,但是每次重啟 mysql 之后 EVENT 并沒有自動(dòng)啟動(dòng),那么如何讓它自動(dòng)啟動(dòng)呢?

方法一:找到當(dāng)前使用的 .cnf 文件,在 [mysqld] 的下面加入如下行:

event_scheduler=1

方法二:啟動(dòng) mysql 的時(shí)候增加 --event_scheduler=1

mysql start --event_scheduler=1

事件詳細(xì)語法事例 (EVENT)

1> 創(chuàng)建事件 (CREATE EVENT)

先來看一下它的語法:

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) 首先來看一個(gè)簡(jiǎn)單的例子來演示每秒插入一條記錄到數(shù)據(jù)表

USE test;

CREATE TABLE aaa (timeline TIMESTAMP);

CREATE EVENT e_test_insert

ON SCHEDULE EVERY 1 SECOND

DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);

等待 3 秒鐘后,再執(zhí)行查詢看看:

mysql> SELECT * FROM aaa;

+---------------------+

| timeline            |

+---------------------+

| 2007-07-18 20:44:26 |

| 2007-07-18 20:44:27 |

| 2007-07-18 20:44:28 |

+---------------------+

2) 5 天后清空 test 表:

CREATE EVENT e_test

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO TRUNCATE TABLE test.aaa;

3) 2007 年 7 月 20 日 12 點(diǎn)整清空 test 表:

CREATE EVENT e_test

ON SCHEDULE AT TIMESTAMP ''2007-07-20 12:00:00''

DO TRUNCATE 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;

[ENABLE | DISABLE] 可是設(shè)置該事件創(chuàng)建后狀態(tài)是否開啟或關(guān)閉,默認(rèn)為 ENABLE 。

[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)

語法很簡(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;

上一篇>>srv記錄是什么?有哪些用處? 下一篇>>無

分享到:
  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1-20183354
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 網(wǎng)絡(luò)版權(quán)侵權(quán)舉報(bào)電話:0371-60135995
  • 警情提示:注意防范電信網(wǎng)絡(luò)詐騙
  • 專注服務(wù)器托管25年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2025 ENKJ All Rights Reserved 地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師  B1-20183354   京公網(wǎng)安備41019702002023號(hào) 
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線