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

Тема в разделе "Базы данных", создана пользователем sesh7, 1 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sesh7

    sesh7 Создатель

    Регистр.:
    4 авг 2008
    Сообщения:
    24
    Симпатии:
    1
    Помогите пожалуйста создать таблицу в которой строки будут удалятся автоматически через 24 часа???
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Добавь в cron
    Код:
    mysql -h hostname -u username -ppassword -e "DELETE FROM table WHERE условие"
    и поставь на выполнение раз в несколько часов.

    Или куриhttp://dev.mysql.com/tech-resources/articles/mysql-events.html
     
  3. Gogomet

    Gogomet Писатель

    Регистр.:
    16 фев 2009
    Сообщения:
    2
    Симпатии:
    0
    Можно php запросом

    'DELETE FROM '.table.' WHERE create_time <= CONVERT(datetime, \''.date('Y-m-d H:i:s',86400).'\', 120)';
     
  4. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    PHP:
    DЕLЕТЕ FRОМ tbl WНЕRЕ `dаtаtimе` < NОW() - INTЕRVАL 30 МINUТЕ
    время вставьте свое...
     
    701 нравится это.
  5. abzac

    abzac Создатель

    Регистр.:
    25 окт 2008
    Сообщения:
    24
    Симпатии:
    3
    Вариант на 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;
    Соотвественно указывется бд и юзер.
     
  6. Freeman08

    Freeman08 Создатель

    Регистр.:
    27 сен 2008
    Сообщения:
    11
    Симпатии:
    0
    Напиши скрипт на пхп и повесь на крон (ну это как вариант) У меня на фирме так демо версии на сайтах обновляются, раз в сутки по крону скрипт срабатывает и возвращается базу в девственное состояние
     
  7. Lans13

    Lans13 Прохожие

    На MSSQL я сделал это с помощью запроса
    Код:
    delete FROM [dbo].[Logs] where datediff(day, shiftdate, getdate()) > 1
    который выполняется ежедневно по планировщику.
     
  8. ilyansp

    ilyansp Постоялец

    Регистр.:
    24 апр 2009
    Сообщения:
    66
    Симпатии:
    11
    Можно php запросом

    'DELETE FROM '.table.' WHERE create_time <= CONVERT(datetime, \''.date('Y-m-d H:i:s',86400).'\', 120)';
     
  9. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    от себя могу только посоветовать идеальный вариант описанный abzac
    нет лучшего варианта, чем обрабатывать базу средствами самой базы, крон конечно дело хорошее, но тут лучше средствами mysql пользоваться
     
Статус темы:
Закрыта.