Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Хранение записи 24 часа в mySQL


Автор: XClan 22.2.2006, 12:48
Как сделать чтобы записи в одной таблице базы mySQL хранились не более 24 часа , после чего удаляются?
Это таблица для хранения сгененированных паролей, где после активизации данные пароля берутся с этой таблицы и вставляются в нужную, а временная запись удаляется сразу! А вот кто не активизировался в течение 24 часов - мне нужно автоматом удалять их!!! Но как??
Спасибо!

Автор: -=Ustas=- 22.2.2006, 13:07
Автоматом мускула ты не заставишь удалять записи.
Посмотри соседние темы, уже много раз поднимался этот вопрос.

Автор: Serkys 22.2.2006, 13:25
ИМХО можно сделать, чтобы они удалялись или при попытке активизации после 24-х часов, или при запуске спец. скрипта.
При попытке активизации сравниваешь текущее время со временем сгенерированного пароля, если разница <24 часов, то нормалёк и удаляешь запись, если нет - удаляешь запись и выводишь ошибку.
Можно записать проверку таблицы в отдельный скрипт и запускать его с помощью спец. средств Апача, несколько тем про запуск скрипта в определённое время уже видел на форуме.

Автор: alligator 22.2.2006, 13:32
Или делаешь отдельный скрипт который будет удалять записи и вешаешь его на cron.....

Автор: XClan 22.2.2006, 16:31
На cron думаю и повешу! Только не пойму как удобно и безболезненно сравнивать их не применяя регулярные выражения!
А то ячейка для поля time в mySQL настроена на timestamp и во время ввода их спомощью TIMESTAMP(8) запись в ней появляется такого плана "2004-02-22 15:00:02" например! А как чтобы в секундах от 1.1.1970 года??
Мне легче сравнивать время в секундах, а то не удобно РВ сравнивать, то что у меня записывает..

Автор: -=Ustas=- 22.2.2006, 16:35
Делай тип поля для времени INT(10)

Автор: XClan 22.2.2006, 17:07
Окей! Теперь супер!
Чтобы вычесть сутки из настоящего времени допустим 1140615821 , надо вычесть отсюда 3600*12....
Спасибо всем! выручили! smile)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)