十分钟后没有使用删除行(“到期”)

时间:2016-09-07 20:34:01

标签: mysql automation content-expiration

我在LAMP堆栈上使用MySQL数据库。我有一张桌子,其中有一些简单的条目。这些条目应该在不使用十分钟后自动删除。 “正在使用”被定义为通过SELECT插入,更新或简单请求(显然删除是不重要的)。我想使用纯MySQL,但还没找到解决方案。如果需要,这些字段可以有table.time_used属性,但还没有。创建一个没有问题。我在考虑一些TRIGGER和PROCEDURE组合,但还是想不出来。

我知道我可以使用像cron这样的第三方应用程序,但我更喜欢MySQL解决方案,因为项目可能会被复制到其他无法选择cron的环境中。

我也知道可以通过使用表和table.expiration_time字段更改SELECT语句来实现这一点,这可能更准确,但我不需要它在第二个工作,我只需要大致十分钟,并希望保持清洁,因为这可能在非常有限的机器上运行。

提前致谢! :)

1 个答案:

答案 0 :(得分:1)

我建议通过存储过程进行所有访问,然后控制更新lastUsed日期时间。

存储过程的临时访问外部不会强制更新lastUsed方面。换句话说,这将是不赞成的。它自然可以使用,但由于它不会有严格的控制,它会落在预期之外。

执行此操作的任何其他机制都依赖于MySQL之外的fullstack服务。

通过MySQL内置的Events功能可以自动删除。我的个人资料页面上有3个与事件相关的链接。一个开始看的是Here