使用預存程序在MySQL 中自動刪除行
您的目標是建立一個MySQL 預存程序,從所有表中刪除超過77天的行每天午夜。雖然存在腳本解決方案,但本文重點介紹使用 MySQL 的 EVENT 功能的更自動化的方法。
建立過程
首先,確保啟用事件調度程序:
SET GLOBAL event_scheduler = ON;
然後,建立一個每天觸發的事件00:00:
CREATE EVENT `delete7DayOldRows` ON SCHEDULE EVERY 1 DAY STARTS '2023-03-01 00:00:00' ON COMPLETION PRESERVE DO -- Your delete logic here END;
定義刪除邏輯
在事件的DO 區塊內,指定刪除邏輯。以下是範例:
BEGIN DECLARE tableName VARCHAR(255); DECLARE cursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = 'your_database_name'; OPEN cursor; FETCH cursor INTO tableName; WHILE tableName IS NOT NULL DO DELETE FROM `your_database_name`.`tableName` WHERE CURDATE() - INTERVAL 7 DAY > updateDt; FETCH cursor INTO tableName; END WHILE; CLOSE cursor; END;
此邏輯會迭代指定資料庫中的所有資料表,並刪除 updateDt 欄位超過 7 天的行。
注意事項
以上是如何根據年齡自動刪除 MySQL 中的每日行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!