【问题标题】:Automatically delete rows in mysql?自动删除mysql中的行?
【发布时间】:2014-05-31 03:43:43
【问题描述】:

我有一个网站,用户可以在其中选择自己的用户名——但只能使用 3 天。所以三天后,用户名可供其他人选择。我设置了我的 mysql 表,以便在有人选择他们的用户名时插入一行用户名以及创建日期。处理我的目标的最佳方式是什么?我应该在 Mysql 中 3 天后自动删除该行(使用 Cron?)还是可以通过其他方式达到我的目标?

【问题讨论】:

  • 每天运行一个 cron 作业以删除超过 3 天的帐户。
  • 如果您有创建用户名的时间戳,您可以在检查用户名是否允许时检查用户名是否为 3 天或更早。这意味着禁用用户名列的UNIQUE 索引,如果您正在使用它...我建议不要删除,信息就是力量:P
  • 在生产站点上使用 cron 是最有效(也是最快)的方法吗?尤其是在托管网站上。
  • 我不会为此考虑 cron 作业或事件,您可以简单地根据 SQL 中创建的日期使用户名无效。所以任何登录的人,查询可能是 select * from users where username=:username and created_date > - 3 days。这种方法意味着您的表有很多记录,但是您可以每周或每月等计划删除旧记录,而不是每天。

标签: php mysql sql database cron


【解决方案1】:

您可以使用 cron,但您可以通过删除或更新行来节省一些服务器时间,如果有人选择了一个已被使用的名称并且该名称早于 3 天。

  1. 用户注册,选择用户名
  2. 检查用户名是否被占用,如果没有照常进行
  3. 如果用户名被占用,请检查它是否超过 3 天
  4. 如果用户名超过三天,请更新或删除并创建一个新用户名。

如果您使用此方法,您将不得不在登录脚本中使用类似的方法来防止过期的用户名登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-25
    • 2013-11-25
    • 2015-06-04
    • 2012-11-18
    • 2019-12-14
    • 2011-01-13
    相关资源
    最近更新 更多