【问题标题】:Mysql self deleting recordsMysql自删除记录
【发布时间】:2011-11-20 12:55:06
【问题描述】:

有没有办法自动删除旧记录。每条记录都有一个时间戳。我希望删除时间戳早于 10 分钟的记录。有没有办法在 mysql 中执行此操作,或者我需要设置一个外部程序来检查时间戳并决定是否应该删除它?

【问题讨论】:

标签: mysql delete-record


【解决方案1】:

在 MySQL 5.1+ 上,您可以创建一个事件以从时间戳小于现在的表中删除 - 10 分钟。让活动每分钟运行一次,或按您希望的频率运行。有关更多信息,请参阅the manual。 类似的东西

CREATE EVENT 'prune_table'
ON SCHEDULE EVERY 5 MINUTE
DO DELETE FROM myTable WHERE timestamp < NOW() - 600;

【讨论】:

    【解决方案2】:

    在触发器中这样做怎么样?每当您更改某些表的数据(插入、更新、删除)时,都会删除该表的旧数据。

    什么,没有人改变表的数据??那么,如果没有人弄乱数据,你为什么还要费心删除旧的东西呢? :)

    【讨论】:

      【解决方案3】:

      据我所知,在 MySQL 中无法做到这一点,您可以编写一个简短的 bash 脚本,甚至可能是一个单行脚本,然后在 cron 上运行。哈克,但它会做的工作。

      【讨论】:

        猜你喜欢
        • 2021-10-04
        • 1970-01-01
        • 2013-02-26
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-28
        • 1970-01-01
        相关资源
        最近更新 更多