【发布时间】:2017-04-01 09:39:00
【问题描述】:
假设有一个数据库包含一个包含日期和事件列的表,现在总共有 10 条记录我希望自动删除比当前日期更早的记录,并且当前日期记录应该存在于数据库,以便将来的记录也应该存在,有没有人知道这样的事情或者可以帮助我如何实现这一点。任何参考资料都会有所帮助。我对 php、phpmyadmin、sql 持开放态度。任何帮助将不胜感激。
【问题讨论】:
标签: php mysql phpmyadmin
假设有一个数据库包含一个包含日期和事件列的表,现在总共有 10 条记录我希望自动删除比当前日期更早的记录,并且当前日期记录应该存在于数据库,以便将来的记录也应该存在,有没有人知道这样的事情或者可以帮助我如何实现这一点。任何参考资料都会有所帮助。我对 php、phpmyadmin、sql 持开放态度。任何帮助将不胜感激。
【问题讨论】:
标签: php mysql phpmyadmin
首先它太宽泛了。为此,您可以考虑使用MySQL Event Scheduler。您可以将其设置为每 24 小时运行一次,并删除小于 NOW() 的所有记录
【讨论】:
激活事件支持:
SET GLOBAL event_scheduler = ON;
添加调度器:
DELIMITER |
DROP EVENT IF EXISTS `clear_old_rows`|
CREATE EVENT `clear_old_rows`
ON SCHEDULE
EVERY 1 HOUR STARTS CURRENT_TIMESTAMP
ON COMPLETION PRESERVE
ENABLE
COMMENT 'clear all rows < CURRENT_TIMESTAMP'
DO
BEGIN
DELETE FROM tablename WHERE date < CURRENT_TIMESTAMP ;
END |
DELIMITER ;
【讨论】:
mysql -u root -p'rootpass'