当前位置: 首页 > 面试题库 >

一段时间后如何删除MySQL记录

虞唯
2023-03-14
问题内容

我想在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的用户? 问题答案: 您可以使用: