日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 定时脚本_MySQL定时执行脚本(计划任务)命令实例

發布時間:2024/1/23 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 定时脚本_MySQL定时执行脚本(计划任务)命令实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在mysql中我們可以直接進行一些參數設置讓它成定時為我們執行一些任務了,這個雖然可以使用windows或者linux中的計劃任務實現,但是mysql本身也能完成

查看event是否開啟

復制代碼 代碼如下:

show variables like '%sche%';

將事件計劃開啟

復制代碼 代碼如下:

set global event_scheduler =1;

創建存儲過程test

復制代碼 代碼如下:

CREATE PROCEDURE test ()

BEGIN

update examinfo SET endtime = now() WHERE id = 14;

END;

創建event e_test

復制代碼 代碼如下:

create event if not exists e_test

on schedule every 30 second

on completion preserve

do call test();

每隔30秒將執行存儲過程test,將當前時間更新到examinfo表中id=14的記錄的endtime字段中去.

關閉事件任務

復制代碼 代碼如下:

alter event e_test ON

COMPLETION PRESERVE DISABLE;

開戶事件任務

復制代碼 代碼如下:

alter event e_test ON

COMPLETION PRESERVE ENABLE;

以上測試均成功,測試環境為mysql 5.4.2-beta-community mysql community server(GPL)

以上的相關內容就是對MySQL定時執行的介紹,望你能有所收獲。

mysql 計劃任務重啟后消失

我們只要修改一配置即可

event_scheduler在mysql的config中設置為OFF有關。去mysql中將配置改為ON則就搞定了。

更詳細的大家可以往下看

MySQL5.1.x版本中引入了一項新特性EVENT,顧名思義就是事件、定時任務機制,在指定的時間單元內執行特定的任務,因此今后一些對數據定時性操作不再依賴外部程序,而直接使用數據庫本身提供的功能。

要查看當前是否已開啟事件調度器,可執行如下SQL:

SHOW VARIABLES LIKE 'event_scheduler';

SELECT @@event_scheduler;

SHOW PROCESSLIST;

若顯示:

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

| Variable_name?? | Value |

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

| event_scheduler | OFF?? |

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

則可執行

SET GLOBAL event_scheduler = 1;

SET GLOBAL event_scheduler = ON;

來開啟,也可以直接在啟動命令加上“–event_scheduler=1”,例如:

mysqld ... --event_scheduler=1

my.ini or my.cnf 中的

[mysqld]

添加 event_scheduler=ON

創建事件(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)首先來看一個簡單的例子來演示每秒插入一條記錄到數據表

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秒鐘后,再執行查詢成功。

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天后停止執行:

CREATE EVENT e_test

ON SCHEDULE EVERY 1 DAY

ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO TRUNCATE TABLE test.aaa;

7) 5天后開啟每天定時清空test表,一個月后停止執行:

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]可以設置這個事件是執行一次還是持久執行,默認為NOT PRESERVE。

8) 每天定時清空test表(只執行一次,任務完成后就終止該事件):

CREATE EVENT e_test

ON SCHEDULE EVERY 1 DAY

ON COMPLETION NOT PRESERVE

DO TRUNCATE TABLE test.aaa;

[ENABLE | DISABLE]可是設置該事件創建后狀態是否開啟或關閉,默認為ENABLE。

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

修改事件(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) 臨時關閉事件

ALTER EVENT e_test DISABLE;

2) 開啟事件

ALTER EVENT e_test ENABLE;

3) 將每天清空test表改為5天清空一次:

ALTER EVENT e_test

ON SCHEDULE EVERY 5 DAY;

刪除事件(DROP EVENT)

語法很簡單,如下所示:

DROP EVENT [IF EXISTS] event_name

例如刪除前面創建的e_test事件

DROP EVENT e_test;

當然前提是這個事件存在,否則會產生ERROR 1513 (HY000): Unknown event錯誤,因此最好加上IF EXISTS

DROP EVENT IF EXISTS e_test;

總結

以上是生活随笔為你收集整理的mysql 定时脚本_MySQL定时执行脚本(计划任务)命令实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。