我想在 7 天后从 MySQL 数据库中删除一些消息。
我的消息表行具有以下格式:
编号 |留言 |日期
日期是正常格式的时间戳; 2012-12-29 17:14:53
我认为 MySQL 事件将是替代 cron 作业的方法。
对于经验丰富的 SQL 人员来说,我想有一个简单的问题,如何对下面括号中的删除消息部分进行编码?
一个例子将不胜感激,谢谢。
DELIMITER $$
CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO
BEGIN
DELETE messages WHERE date >= (the current date - 7 days);
END;
$$;
您可以尝试使用这个条件:
WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY)
所以整个 SQL 脚本看起来像这样:
CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO BEGIN
DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;
然而,在你的地方,我会用一个简单的 cron 脚本来解决给定的问题。这样做的原因很简单:更容易维护代码,没有丑陋的 SQL 解决方法,与您的系统顺利集成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)