管理大型数据库涉及维护数据完整性和删除过时的记录以增强性能和效率。 MySQL 通过存储过程提供了一个优雅的解决方案,它允许根据指定的时间间隔计划删除行。
CREATE PROCEDURE delete_old_rows (table_name VARCHAR(255), days_old INT)
DELETE FROM table_name WHERE DATE(column_name) < DATE_SUB(NOW(), INTERVAL days_old DAY)
SET GLOBAL event_scheduler = ON;
CREATE EVENT delete_daily_rows ON SCHEDULE EVERY 1 DAY STARTS '2023-01-01 00:00:00' DO CALL delete_old_rows('table_name', 7); END;
要从 messages 表中删除超过 7 天的行:
CALL delete_old_rows('messages', 7);
以上是如何使用存储过程在 MySQL 中自动删除行?的详细内容。更多信息请关注PHP中文网其他相关文章!