Срок жизни записей в БД.
Заранее благодарю.
Как можно установить срок жизни записей в базе данных (например 1 неделю)?
Заранее благодарю.
Автоматом наверное только через cron.
Как можно установить срок жизни записей в базе данных (например 1 неделю)?
Заранее благодарю.
Сделать поле BIGINT, допустим, last_time (но не в коем случае не time) со временем записи и удалять записи DELETE FROM table WHERE last_time<(time()-604800).
Сделать поле BIGINT, допустим, last_time (но не в коем случае не time) со временем записи и удалять записи DELETE FROM table WHERE last_time<(time()-604800).
Да, согласен. А как можно сделать так, чтоб, скажем такая проверка выполнялась, например, раз в день. А то это же не серьезно тревожить по пустякам :) сервер БД каждый раз при открытии страницы...
Мне, например, понравилась идея с кроном (shaelf), но как это сделать я не знаю.
Да, согласен. А как можно сделать так, чтоб, скажем такая проверка выполнялась, например, раз в день. А то это же не серьезно тревожить по пустякам :) сервер БД каждый раз при открытии страницы...
Мне, например, понравилась идея с кроном (shaelf), но как это сделать я не знаю.
Если хостер даёт такую возможность, то в панели управления можно задать время и указать скрипт, который должен в это время выполняться. Код тебе практически уже дали. :)
Если хостер даёт такую возможность, то в панели управления можно задать время и указать скрипт, который должен в это время выполняться. Код тебе практически уже дали. :)
Премного благодарен. Я не знал, что есть такая возможность (жуть как стыдно):) .
Премного благодарен. Я не знал, что есть такая возможность (жуть как стыдно):) .
Всё когда то узнаёться в первый раз. :)
Всё когда то узнаёться в первый раз. :)
И на этой торжественной ноте тема объявляется закрытой:) !
Сделать поле BIGINT, допустим, last_time (но не в коем случае не time) со временем записи и удалять записи DELETE FROM table WHERE last_time<(time()-604800).
Мне кажется, так будет лучше. Сделать поле Date - дата добавления записи, а удалять так:
DELETE FROM TABLE WHERE DATE_ADD(Date, INTERVAL 7 DAY)<=NOW()
А если хостер не предоставляет тебе веб интерфейс крона, то создай файл (например cron) с таким содержанием
*/1 * * * * /usr/bin/php /home/user/public_html/pages/script.php
А потом в командной строке crontab cron
Это мы запустили крон на каждую минуту
Мне кажется, так будет лучше. Сделать поле Date - дата добавления записи, а удалять так:
DELETE FROM TABLE WHERE DATE_ADD(Date, INTERVAL 7 DAY)
<= NOW()
А если хостер не предоставляет тебе веб интерфейс крона, то создай файл (например cron) с таким содержанием
*/1 * * * * /usr/bin/php /home/user/public_html/pages/script.php
А потом в командной строке crontab cron
Это мы запустили крон на каждую минуту
Мне кажется, так будет лучше. Сделать поле Date - дата добавления записи, а удалять так:
DELETE FROM TABLE WHERE DATE_ADD(Date, INTERVAL 7 DAY)<=NOW()
А если хостер не предоставляет тебе веб интерфейс крона, то создай файл (например cron) с таким содержанием
*/1 * * * * /usr/bin/php /home/user/public_html/pages/script.php
А потом в командной строке crontab cron
Это мы запустили крон на каждую минуту
Если не секрет: что такое DATE_ADD? В вопросе не звучало, про какое DB речь идёт....
Если не секрет: что такое DATE_ADD? В вопросе не звучало, про какое DB речь идёт....
По дефолту мускул:)
По дефолту мускул:)
Может у аффтора дефолт другой....
Вобчем-то, тогда всё правильно. Если MySQL 3.23...
Может у аффтора дефолт другой....
Вобчем-то, тогда всё правильно. Если MySQL 3.23...
Ну вот, теперь пошёл почти флуд:). Проблема как мне кажеться уже решена:)))).
Ну вот, теперь пошёл почти флуд:). Проблема как мне кажеться уже решена:)))).
Как есть - флудильня. Аффтор-то тему уже прикрыл!