mysql計劃任務每天定時執行

來源:互聯網
上載者:User

標籤:

代碼例子:
CREATE EVENT `course_listener`ON SCHEDULE EVERY 1 DAY STARTS ‘2012-07-18 00:00:00‘ON COMPLETION PRESERVEENABLEDOUPDATE `om_courselist` SET `status`=6 WHERE `status`=5 AND `closetime`<CURRENT_TIMESTAMP();

 

可以用navicat建立事件,更快捷:

Navicat建立和設計MySQL事件

1.開啟定時器 0:off 1:on

 SET GLOBAL event_scheduler = 1;

2.在navicat左側選擇一個資料庫,單擊“時間”-“建立事件”,彈出一個視窗。

在定義選項輸入SQL語句,以BEGIN開頭,以END結尾。

如果是在本地運行,Definer為[email protected]。

3.計劃任務,每隔一段時間就有固定需求的操作,如建立表,刪除資料等操作。

3-1. AT 時間戳記,用來完成單次的計劃任務。

3-2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳記] [ENDS時間戳記],用來完成重複的計劃任務。時間單位較多,按需選擇。

在兩種計劃任務中,時間戳記可以是任意的TIMESTAMP 和DATETIME 資料類型,時間戳記需要大於目前時間。

最後儲存就OK了

 

附上mysql事件的文法:

MySQL 或 MariaDB 事件文法

MySQL 事件計劃是在 MySQL 5.1.6 添加。MySQL 事件是按計劃運行工作。因此,我們有時稱它們為計劃事件。當你建立一個事件時,你是建立一個有名的資料庫物件,包含在一個或多個規律區間運行一個或多個 SQL 陳述式,並在特定的日期時間開始及結束。從概念上,這是類似 Windows 工作排程器的概念。點擊 來開啟 事件 的對象列表。

定義

定義包括一個有效 SQL 陳述式。這可以是一個簡單的語句,如 SELECTINSERT,或它可以是一個用 BEGINEND 寫的複合陳述式。複合陳述式可以包含聲明迴圈和其它控制結構語句。

提示:要自訂編輯器的視圖並查看更多 sql 編輯功能,請看編輯器進階功能。

定義者
指定當在事件運行時檢查存取權限要使用的使用者帳號。預設定義者值是運行 CREATE EVENT 語句的的使用者。(這是和 DEFINER = CURRENT_USER 相同。)如果給予一個使用者值,它應該是一個 ‘user_name‘@‘host_name‘ 格式的 MySQL 帳號(使用在 GRANT 語句相同的格式)。user_name 及 host_name 值都是必須的。

狀態
你可以建立一個事件但可以用 DISABLE 關鍵字保持不啟用。或者,你可以用 ENABLE 來出明確預設狀態,這是啟用。

ON COMPLETION
正常情況下,一旦事件已到期,它將立即刪除。你可以通過指定 ON COMPLETION PRESERVE 來重寫此效能。使用 ON COMPLETION NOT PRESERVE 只是使預設非持久性的效能明確。

計劃

AT
AT timestamp 用於一次性事件。它指定該事件只運行一次於 timestamp 的日期和時間,它必須同時包含日期和時間,或必須是一個解析為 datetime 值的運算式。使用 +INTERVAL 來建立一個事件,它發生在與當前日期和時間有關的將來某個時候。

EVERY
在定期間隔重複的行動,你可以用一個 EVERY 子句之後是一個 interval。(+INTERVALEVERY 不能同時使用。)

STARTS
EVERY 子句還可能包含一個非必須的 STARTS 子句。STARTS 之後是一個 timestamp 值表示行動應該何時開始重複,也可以用 +INTERVAL 間隔以指定「由現在開始」的時間量。

例如:EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK 的意思是「每 3 個月,從現在起一周后開始」。

ENDS
EVERY 子句還可包含一個非必須的 ENDS 子句。ENDS 關鍵字之後是一個 timestamp 值告訴 MySQL 何時停止重複事件。你也可以用 +INTERVAL 間隔與 ENDS 一起。

例如:EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK 相當於「每十二個小時,從現在起三十分鐘後開始,並於現在起四個星期後結束」。

P.S. timestamp 必須在未來的 - 你不能安排一個事件發生在過去。
 

interval 區間由兩部份組成,數量和時間單位*。
*YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND

 

 來源:http://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual/EventsMySQL.html

 

mysql計劃任務每天定時執行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.