【发布时间】:2011-11-20 12:55:06
【问题描述】:
有没有办法自动删除旧记录。每条记录都有一个时间戳。我希望删除时间戳早于 10 分钟的记录。有没有办法在 mysql 中执行此操作,或者我需要设置一个外部程序来检查时间戳并决定是否应该删除它?
【问题讨论】:
标签: mysql delete-record
有没有办法自动删除旧记录。每条记录都有一个时间戳。我希望删除时间戳早于 10 分钟的记录。有没有办法在 mysql 中执行此操作,或者我需要设置一个外部程序来检查时间戳并决定是否应该删除它?
【问题讨论】:
标签: mysql delete-record
在 MySQL 5.1+ 上,您可以创建一个事件以从时间戳小于现在的表中删除 - 10 分钟。让活动每分钟运行一次,或按您希望的频率运行。有关更多信息,请参阅the manual。 类似的东西
CREATE EVENT 'prune_table'
ON SCHEDULE EVERY 5 MINUTE
DO DELETE FROM myTable WHERE timestamp < NOW() - 600;
【讨论】:
在触发器中这样做怎么样?每当您更改某些表的数据(插入、更新、删除)时,都会删除该表的旧数据。
什么,没有人改变表的数据??那么,如果没有人弄乱数据,你为什么还要费心删除旧的东西呢? :)
【讨论】:
据我所知,在 MySQL 中无法做到这一点,您可以编写一个简短的 bash 脚本,甚至可能是一个单行脚本,然后在 cron 上运行。哈克,但它会做的工作。
【讨论】: