排程 - Event
MySQL事件(Events)是一種用於安排和自動執行指定任務或SQL語句的機制。它類似於作業系統上的計劃任務(cron jobs)或任何其他自動化工具,但在MySQL中實現。
Create Event
event_name
:事件的名稱,應該是唯一的。schedule
:事件的排程設定,包括頻率和開始時間。ON COMPLETION [NOT] PRESERVE
:選擇是否在事件執行完成後保留事件。PRESERVE
表示保留,否則事件將被刪除。ENABLE | DISABLE
:您可以選擇啟用或禁用事件。默認情況下,事件是啟用的。DO
:事件的執行內容,包括要執行的SQL語句或程式碼。
排程設定
schedule
部分是事件的排程設定,可以使用以下選項:
EVERY interval
:指定事件的執行頻率,interval
可以是INTERVAL
運算式,例如EVERY 1 DAY
表示每天執行一次。STARTS start_time
:指定事件的開始時間,可以是日期和時間的格式。事件將在這個時間之後開始執行。ENDS end_time
:可選,指定事件的結束時間。事件將在這個時間之前停止執行。
範例
每天早上7點開始都會執行一次,並且在執行完成後保留:
管理事件
要查看現有事件,可以使用以下SQL語句:
要啟用或禁用事件,可以使用以下語句:
要刪除事件,可以使用以下語句:
請注意,執行事件需要相應的權限。通常,只有具有事件權限的用戶才能創建、修改或刪除事件。
總之,MySQL Event 是一種強大的自動化工具,可用於處理定期執行的任務和簡化數據庫管理。請確保謹慎設計和設置事件,以確保其正確性和安全性。
根據前面章節,針對分區增加排程機制,讓其真正做到全自動分區作業
具體說明如下:
ON SCHEDULE EVERY 1 MONTH
:這部分設定了事件的執行頻率,每個月執行一次。STARTS TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-01 03:00:00'))
:這部分設定了事件的開始時間。我們使用NOW()
函數獲取當前日期和時間,然後使用DATE_FORMAT
函數將其調整為每月的1號凌晨3點。這確保了事件在每月1號凌晨3點開始執行。DO BEGIN
和END||
:這是事件的執行內容區塊。在這個區塊中,我們調用了存儲過程auto_part
,並傳遞了特定的參數,以管理表t_big_data_practise
的分區。
該事件的目的是自動化管理表t_big_data_practise
的分區。該事件每個月執行一次,不會自動刪除,確保了數據表的分區策略保持有效。
Last updated