2016-09-16 3 views
-1

Я хочу знать, как удалить старых пользователей из моей базы данных MySQL. Например, проверьте, неактивны ли они около 30 дней. Я пытался сделать это на Java, но он просто зависает.Как удалить старых пользователей mysql из базы данных

+2

Каким был ваш подход при попытке удалить пользователей на Java? –

+0

'для пользователя DataUser: getAllUsers()) { long delay = System.currentTimeMillis() - user.getLastJoined(); если ((задержка/1000)> 86400 * 30) { \t user.delete(); } } ' –

+0

Так что это то, что? Hibernate? JPA? Что-то другое? – Thilo

ответ

1

Я предлагаю сделать это с mysql стороны, идти на верстаке/консоль/все, что вы используете, и удалять пользователей там, это будет простой запрос:

DELETE FROM users WHERE dateJoined < yourDate

Если вы хотите, чтобы сделать это в Java вам нужно будет использовать JDBC, здесь JDBC tutorial. Если вы хотите сделать это только один раз, я действительно предлагаю использовать консоль, JDBC - это много кода шаблона, и если вы ничего не делаете с базой данных, тогда нет смысла, и я думаю, вы просто делаете все это, чтобы узнать , а не в производстве или что-то еще.

+0

Как вычесть текущее время системы из последнего времени соединения и проверить, если оно больше 30 дней, например? –

+1

'DATE_SUB (NOW(), INTERVAL 30 DAY)' текущая дата - 30 дней, тогда вам нужно проверить, больше ли это число пользователя, вы можете просто сделать это с помощью '>' – Shadov

+0

DELETE FROM users WHERE lastJoined> DATE_SUB (NOW(), INTERVAL 30 DAY) Нравится? Он не удалял ни одного из пользователей. –

Смежные вопросы