【问题标题】:How to delete old mysql users from database如何从数据库中删除旧的mysql用户
【发布时间】:2017-01-24 17:32:54
【问题描述】:

我想知道如何从我的 MySQL 数据库中删除旧用户。例如,检查它们是否在大约 30 天内处于非活动状态。我尝试在 Java 中执行此操作,但它只是冻结了。

【问题讨论】:

  • 当您尝试在 Java 中删除用户时,您的方法是什么?
  • ' for (DataUser user : getAllUsers()) { long delay = System.currentTimeMillis() - user.getLastJoined(); if ((延迟 / 1000) > 86400 * 30) { user.delete(); } }'
  • 那么这是用什么?休眠? JPA?还有什么?
  • 我不明白。

标签: mysql database delete-row


【解决方案1】:

我建议从mysql 端执行此操作,进入工作台/控制台/无论您使用什么并删除那里的用户,这将是一个简单的查询:

DELETE FROM users WHERE dateJoined < yourDate

如果您想在 Java 中执行此操作,则需要使用 JDBC,请查看此处JDBC tutorial。如果你只想这样做一次,那么我真的建议使用控制台,JDBC 是很多样板代码,如果你没有对数据库做任何其他事情,那么没有意义,我想你只是为了学习而做这一切,而不是在生产中或任何东西。

【讨论】:

  • 如何从上次加入时间中减去系统当前时间,例如是否超过 30 天?
  • DATE_SUB(NOW(), INTERVAL 30 DAY) 是当前日期 - 30 天,那么您需要检查用户日期是否大于该日期,您可以使用 > 进行操作
  • 从上次加入的用户中删除 > DATE_SUB(NOW(), INTERVAL 30 DAY) 像这样?它没有删除任何用户。
  • lastJoined 是用户加入的日期,所以它需要小于 date_sub,并且你确定你在 users 表中的字段被称为 lastJoined 并且它是一个日期字段,而不是一个 varchar 或其他什么?
  • 它包含以毫秒为单位的日期。
猜你喜欢
  • 2017-05-15
  • 2020-05-31
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 2011-02-09
相关资源
最近更新 更多