【问题标题】:Database which can remove records automatically by checking date column可以通过检查日期列自动删除记录的数据库
【发布时间】:2017-04-01 09:39:00
【问题描述】:

假设有一个数据库包含一个包含日期和事件列的表,现在总共有 10 条记录我希望自动删除比当前日期更早的记录,并且当前日期记录应该存在于数据库,以便将来的记录也应该存在,有没有人知道这样的事情或者可以帮助我如何实现这一点。任何参考资料都会有所帮助。我对 php、phpmyadmin、sql 持开放态度。任何帮助将不胜感激。

【问题讨论】:

标签: php mysql phpmyadmin


【解决方案1】:

首先它太宽泛了。为此,您可以考虑使用MySQL Event Scheduler。您可以将其设置为每 24 小时运行一次,并删除小于 NOW() 的所有记录

【讨论】:

  • 你能指出一些我可以学习这个的参考资料或教程吗?
  • 每当我尝试在 phpmyadmin 中打开事件时,它会说我需要超级权限才能做到这一点,现在如何克服这个问题?
【解决方案2】:

激活事件支持:

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 ;

【讨论】:

  • 当我尝试激活事件时,它说我需要超级权限才能这样做,现在我得到了谁??
  • 必须以 root 身份登录。 mysql -u root -p'rootpass'
猜你喜欢
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 2016-11-28
  • 2014-07-15
  • 2021-09-18
相关资源
最近更新 更多