我用谷歌搜索并搜索了 MYSQL 文档,但找不到一种简洁的方法来自动删除超过给定时间范围的记录。我已经能够在 5.1 中获得一个查询,以将 TIMESTAMP 的值转换为具有当前时间的 DIFF 函数内的 DATETIME,以查看它是否满足到期条件。我已经读到 5.1 现在具有运行计划任务的能力,但在配置它的方式上并不多。我没有为此使用触发器。

在 5.1 的 MySQL 文档中,它指的是创建一个事件:

'CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO sql_statement;

schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]

interval:

我目前使用蟾蜍(这是天赐之物)。我的查询有效地删除了任何超过 30 分钟的记录。我只需要找到这个事件是如何被调用的......

谢谢!

最佳答案

您正在谈论使用 MySQL Scheduler 。创建该事件后,MySQL 将在您配置它的任何时间间隔内自动调用它。如果您在设置时遇到问题,请发布您遇到的查询和错误。

关于mysql - 自动删除MySQL中过期记录的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/521624/

10-14 18:00