mysql 定時(shí)任務(wù)可通過(guò) event 語(yǔ)句創(chuàng)建,用于在指定時(shí)間間隔自動(dòng)執(zhí)行任務(wù)。創(chuàng)建語(yǔ)法為:create event event_name on schedule [at start_time | every interval_value] do [任務(wù)] end??梢允褂?show events 查詢、alter event 修改、drop event 刪除定時(shí)任務(wù)。
如何使用 MySQL 創(chuàng)建定時(shí)任務(wù)
MySQL 是一種功能強(qiáng)大的數(shù)據(jù)庫(kù)管理系統(tǒng),它允許您在特定時(shí)間間隔自動(dòng)執(zhí)行任務(wù)。要?jiǎng)?chuàng)建 MySQL 定時(shí)任務(wù),您可以使用 EVENT 語(yǔ)句。
創(chuàng)建 EVENT 語(yǔ)句
CREATE EVENT event_name ON SCHEDULE AT start_time EVERY interval_value DO -- 要執(zhí)行的任務(wù) END;
登錄后復(fù)制
參數(shù)說(shuō)明:
event_name:定時(shí)任務(wù)的名稱。
ON SCHEDULE:指定任務(wù)調(diào)度的類(lèi)型??梢允?AT(特定時(shí)間)或 EVERY(特定時(shí)間間隔)。
AT start_time:如果 ON SCHEDULE 為 AT,則指定任務(wù)開(kāi)始執(zhí)行的時(shí)間。
EVERY interval_value:如果 ON SCHEDULE 為 EVERY,則指定任務(wù)執(zhí)行的頻率,例如 EVERY 1 DAY(每天執(zhí)行一次)。
DO:指定要執(zhí)行的任務(wù)。可以使用 SQL 語(yǔ)句或存儲(chǔ)過(guò)程。
示例
以下示例創(chuàng)建一個(gè)每小時(shí)執(zhí)行一次的定時(shí)任務(wù),該任務(wù)將 user_activity 表中的記錄從數(shù)據(jù)庫(kù)中刪除:
CREATE EVENT hourly_cleanup ON SCHEDULE EVERY 1 HOUR DO DELETE FROM user_activity WHERE timestamp <p><strong>管理 EVENT</strong></p><p>一旦創(chuàng)建了定時(shí)任務(wù),您可以使用以下語(yǔ)句對(duì)其進(jìn)行管理:</p>
登錄后復(fù)制
查詢 EVENT:SHOW EVENTS;
啟用/禁用 EVENT:ALTER EVENT event_name [ENABLE | DISABLE];
刪除 EVENT:DROP EVENT event_name;
注意事項(xiàng)
MySQL 8.0 及更高版本支持 EVENT。
確保 MySQL 服務(wù)器正在運(yùn)行,并且定時(shí)任務(wù)已啟用。
定時(shí)任務(wù)將在服務(wù)器時(shí)間而不是客戶端時(shí)間執(zhí)行。