亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

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

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

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

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

event_scheduler=1 。

MySQL5.1.x 版本中引入了一項新特性 EVENT ,顧名思義就是事件、定時任務(wù)機制,在指定的時間單元內(nèi)執(zhí)行特定的任務(wù),因此今后一些對數(shù)據(jù)定時性操作不再依賴外部程序,而直接使用數(shù)據(jù)庫本身提供的功能。此功能是對 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)建一個每 30 秒清空 tableA 數(shù)據(jù)的任務(wù)

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

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

Select @@event_scheduler;

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

SET GLOBAL event_scheduler = ON;

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

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

event_scheduler=1

方法二:啟動 mysql 的時候增加 --event_scheduler=1

mysql start --event_scheduler=1

事件詳細語法事例 (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) 首先來看一個簡單的例子來演示每秒插入一條記錄到數(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 點整清空 test 表:

CREATE EVENT e_test

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

DO TRUNCATE TABLE test.aaa;

4) 每天定時清空 test 表:

CREATE EVENT e_test

ON SCHEDULE EVERY 1 DAY

DO TRUNCATE TABLE test.aaa;

5) 5 天后開啟每天定時清空 test 表:

CREATE EVENT e_test

ON SCHEDULE EVERY 1 DAY

STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO TRUNCATE TABLE test.aaa;

6) 每天定時清空 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 天后開啟每天定時清空 test 表,一個月后停止執(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è)置這個事件是執(zhí)行一次還是持久執(zhí)行,默認為 NOT PRESERVE 。

8) 每天定時清空 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)閉,默認為 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) 臨時關(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)

語法很簡單,如下所示:

DROP EVENT [IF EXISTS] event_name

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

DROP EVENT e_test;

當(dāng)然前提是這個事件存在,否則會產(chǎn)生 ERROR 1513 (HY000): Unknown event 錯誤,因此最好加上 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ù)器/云主機 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:0371-60135995
  • 警情提示:注意防范電信網(wǎng)絡(luò)詐騙
  • 專注服務(wù)器托管19年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2024 ENKJ All Rights Reserved 地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師  B1-20183354   京公網(wǎng)安備41019702002023號 
      0
     
     
     
     

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