問題:
是否可以在時間刪除於指定數量的行天?
答案:
是的,MySQL 的 EVENT 功能可讓您安排可以自動執行此流程的任務。以下是建立此類預存程序的方法:
準備資料庫架構:
建立具有追蹤所需時間戳列的表和列行年齡。
DELIMITER $$ CREATE PROCEDURE DeleteRowsOlderThanDays(table_name VARCHAR(255), days_threshold INT) BEGIN -- Check for valid input parameters IF table_name IS NULL OR table_name = '' OR days_threshold IS NULL OR days_threshold ≤ 0 THEN RETURN; END IF; -- Define the deletion query SET @deletion_query = CONCAT('DELETE FROM ', table_name, ' WHERE TIMESTAMPDIFF(DAY, created_timestamp, NOW()) > ', days_threshold); -- Execute the deletion query PREPARE stmt FROM @deletion_query; EXECUTE stmt; DEALLOCATE PREPARE stmt; END; $$ DELIMITER ;
CREATE EVENT DeleteRowsJob ON SCHEDULE EVERY 1 DAY AT '00:00:00' DO CALL DeleteRowsOlderThanDays('messages', 7);
確定:
注意:可以根據需要自訂儲存程序和事件計劃以處理多個表和不同的行齡閾值。
以上是MySQL預存程序可以根據年齡自動刪除行嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!