我想在7天后从我的MySQL数据库中删除一些消息。
我的消息表行具有以下格式:id | 留言| 日期
日期是标准格式的时间戳。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解决方法,可以与您的系统顺利集成。
问题内容: 我已经在sql数据库上设置了临时用户帐户,该帐户存储了我的网站用户的用户名,密码和添加日期。 我最初打算以编程方式删除这些记录,但是现在我想知道sql server 2008是否具有内置功能,该功能允许在假设某天后自动删除记录。 这将解决用户在关闭其临时帐户后仍能够保持登录系统的问题 谢谢 问题答案: 您可能无需实际删除记录就可以得到所需的内容。您可以将计算列添加到表中以说明记录是否有
问题内容: 我的表中的行超过60000。如何一次将行从40000删除到50000? 问题答案: 您可以使用以下功能: 要么: 很简单?
问题内容: 我有下面的代码删除mysql记录,我想对其进行转换,因此它将是ajax / jquery代码,因此从表中删除记录后,我可以留在同一页上。现在,它工作正常,但不在同一页面上,我需要刷新页面以查看结果。这只是完整代码的一部分。所有代码都在一页上。 问题答案: Delete 现在在本节中写下 现在在“ delete_page.php”页面中执行此操作 休息,我希望你知道。希望这可以帮助
问题内容: 我有一个这样的 LoginTime 表: 我想删除的最后一条记录。用户的最后一条记录可以通过识别。 如何使用一个查询执行此操作。 问题答案: 您需要按user_id(例如WHERE user_id = 1)过滤表,然后按时间(例如ORDER BY datetime)对其进行排序,然后将查询限制为一项(例如LIMIT1),然后删除此查询的结果。最后,您将获得如下查询:
我创建了一个应用程序来上传使用PHP,Javascript和WAMP服务器的图像。我需要在一段时间后自动删除上传的图像,比如X分钟。如何实现这一点? 谢谢...
问题内容: 我有3个表MySQL(MyIsam): 如何删除所有没有消息也没有archivedMessage的用户? 问题答案: 您可以使用: