是否有办法自动删除旧记录?每条记录都有一个时间戳。我想删除时间戳超过10分钟的记录。是否有一种方法可以在mysql中做到这一点,或者我需要设置一个外部程序来检查时间戳,并决定是否应该删除它?
如何在触发器中这样做?当你改变某个表的数据时(插入、更新、删除),你就会删除这个表的旧数据。
什么,没有人改变表的数据??那么,如果没有人破坏数据,为什么还要删除旧的东西呢?:)
在MySQL 5.1+上,你可以创建一个事件从时间戳小于10分钟的表中删除。让活动每分钟进行一次,或者按照你的意愿频繁进行。请参阅手册了解更多信息。就像
CREATE EVENT 'prune_table'
ON SCHEDULE EVERY 5 MINUTE
DO DELETE FROM myTable WHERE timestamp < NOW() - 600;
据我所知,在MySQL中没有办法做到这一点,您可以编写一个简短的bash脚本,甚至可能是一个一行代码,并在cron上运行。不太好,但它能完成任务。