【发布时间】:2015-04-06 10:25:33
【问题描述】:
我有一个密码恢复系统,允许用户恢复他们的密码。这些请求存储在recoveries 表中。此表包含 expiry 列中的时间戳,用于说明每行的创建时间。
我希望此事件针对 recoveries 中的每个新行单独运行,以便它们在创建后 10 分钟正好过期。
我有这段代码,但我不知道如何让它在recoveries 中创建每一行 后正好运行 10 分钟:
CREATE EVENT `delete_recoveries`
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 MINUTE
ON COMPLETION PRESERVE
DO BEGIN
DELETE FROM `recoveries` WHERE `expiry` < DATE_SUB(NOW(), INTERVAL 10 MINUTE);
END;
【问题讨论】:
-
这与您之前的问题非常接近:stackoverflow.com/questions/29457483/…。您真的不希望在某事发生后每 10 分钟触发一次事件。这不是最好的解决方案。
-
是的,但没有人给我一个好的答案。如果这不是正确的解决方案,我还能做什么?
-
您得到了满足您需求的其他问题的出色答案,包括任意精确的 10 分钟截止时间,但也非常有效。你应该回去重新阅读它,直到你明白为什么会这样。