gpt4 book ai didi

php - 如何使用动态日期时间的 MySQL Event Scheduler?

转载 作者:行者123 更新时间:2023-11-29 06:14:50 25 4
gpt4 key购买 nike

表table_cache是​​这样的:

    id   cache_name     created date
1 cache one 2016-03-06 01:20:04
2 cache two 2016-03-06 09:40:34
3 cache three 2016-03-06 11:40:04

截断 table_cache 的 MySQL 脚本是这样的:

CREATE 
EVENT `deleteEvent`
ON SCHEDULE EVERY 30 MINUTE STARTS '2016-04-06 00:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
TRUNCATE table_cache;

它会每 30 分钟截断一次 star 2016-04-06 00:00:00

但这不是我想要的。我想每 30 分钟从表 table_cache 中截断 table_cache star field created_date

所以,根据上表:

id=1, truncate on 2016-03-06 01:50:04
id=2, truncate on 2016-03-06 10:10:34
id=3, truncate on 2016-03-06 12:10:04

能不能做到?

最佳答案

根据定义,

TRUNCATE 是一种从表中删除每一行的操作。这不是您想要的。

你想要的可能是

DELETE FROM table_cache
WHERE created_date < DATE_SUB(NOW(), INTERVAL 30 MINUTE)

这将删除运行查询时超过 30 分钟的所有条目。

您需要根据您需要的生命周期精确度来决定运行此查询的频率。 (例如,如果您每半小时运行一次查询,则在 8:01 创建的行只有在 8:31 才有资格删除,因此它会持续到查询在 9:00 运行,这实际上最后 59 分钟而不是 30 分钟。这是否是一个问题将取决于您的应用程序。)

关于php - 如何使用动态日期时间的 MySQL Event Scheduler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com