Удаление записей через определенное время

Статус
В этой теме нельзя размещать новые ответы.

sesh7

Создатель
Регистрация
4 Авг 2008
Сообщения
24
Реакции
1
Помогите пожалуйста создать таблицу в которой строки будут удалятся автоматически через 24 часа???
 
Добавь в cron
Код:
mysql -h hostname -u username -ppassword -e "DELETE FROM table WHERE условие"
и поставь на выполнение раз в несколько часов.

Или кури
 
Можно php запросом

'DELETE FROM '.table.' WHERE create_time <= CONVERT(datetime, \''.date('Y-m-d H:i:s',86400).'\', 120)';
 
PHP:
DЕLЕТЕ FRОМ tbl WНЕRЕ `dаtаtimе` < NОW() - INTЕRVАL 30 МINUТЕ
время вставьте свое...
 
  • Нравится
Реакции: 701
Вариант на event
PHP:
CREATE EVENT delete_rows
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
    DO
     DЕLЕТЕ FRОМ myschema.tbl;
Где, myschema - название твоей бд. В таком случае не надо хранить поле date в таблице, да и таблица все равно какой структуры.
Только на бд должны быть привелегии EVENT
GRANT EVENT ON myschema.* TO jon@ghidora;
Соотвественно указывется бд и юзер.
 
Напиши скрипт на пхп и повесь на крон (ну это как вариант) У меня на фирме так демо версии на сайтах обновляются, раз в сутки по крону скрипт срабатывает и возвращается базу в девственное состояние
 
На MSSQL я сделал это с помощью запроса
Код:
delete FROM [dbo].[Logs] where datediff(day, shiftdate, getdate()) > 1
который выполняется ежедневно по планировщику.
 
Можно php запросом

'DELETE FROM '.table.' WHERE create_time <= CONVERT(datetime, \''.date('Y-m-d H:i:s',86400).'\', 120)';
 
от себя могу только посоветовать идеальный вариант описанный abzac
нет лучшего варианта, чем обрабатывать базу средствами самой базы, крон конечно дело хорошее, но тут лучше средствами mysql пользоваться
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху