有没有办法自动删除旧记录。每条记录都有一个时间戳。我希望删除时间戳早于10分钟的记录。有没有办法在mysql中执行此操作,或者我需要设置外部程序来检查时间戳并决定是否应删除它?
答案 0 :(得分:2)
如何在触发器中执行此操作?每当您更改某些表的数据(插入,更新,删除)时,您都会删除该表的旧数据。
什么,没有人改变表的数据?那么,如果没有人对数据感到困惑,你为什么还要删除旧的东西呢? :)
答案 1 :(得分: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 :(得分:0)
据我所知,在MySQL中没有办法做到这一点,你可以写一个简短的bash脚本,甚至可能是一个单行程序,并在cron上运行。哈基,但它做的工作。