|
|
|
| Здравствуйте уважаемые программисты.
Возникла проблема: необходимо удалять записи за старый год. Т.е. есть таблица (id, day, name_day), поле day - типа Date. В поле day содержатся даты каких то праздников, при наступлении нового года (например, 2012) необходимо автоматически!!! удалить записи за прошлые года (как раз в поле day указаны даты с прошлом).
Как автоматизировать выполнение запроса на удаление? | |
|
|
|
|
|
|
|
для: Filatov_Aleksey
(02.02.2011 в 00:50)
| | Раз в год, это можно и через админ панель, например. А так, проверить дату и если 1 января, то запрос на удаление записей для полей day меньше текущей даты. | |
|
|
|
|
|
|
|
для: Filatov_Aleksey
(02.02.2011 в 00:50)
| | Надежнее всего повесить скрипт, удаляющий записи на cron - планировщик заданий UNIX (в новых версиях MySQL выше 5.1 имеется собственный планировщик заданий). | |
|
|
|
|
|
|
|
для: cheops
(02.02.2011 в 11:01)
| | Планировщик заданий в MySQL - наиболее оптимальный вариант, т.к. размещаться будет на бесплатном хостинге. Единственный недостаток, это то что в случае перезагрузки сервера БД, планировщик автоматически отключается, т.е. в начальном состоянии он отключен (проверял SHOW VARIABLES LIKE '%event%';), соответственно включал его SET GLOBAL event_scheduler = ON;. Мне неизвестно когда хостер будет перезагружать сервер (и как часто). Как отслеживать включён ли хостинг? А в случае если он выключен, то включить и настроить?
Быть может сделать проверку при посещении сайта любым пользователем осуществлять эту проверку и включать если нужно. Как вы щитаете как можно ещё реализовать данную процедуру (включения планировщика)? Или можно как то на уровне php осуществить планировку выполнения задачи? | |
|
|
|
|
|
|
|
для: Filatov_Aleksey
(02.02.2011 в 18:06)
| | Вообще-то события задаются при помощи оператора CREATE EVENT, а просматриваются при помощи оператора SHOW EVENTS. Они не должны стираться после перезагрузки сервера, так как размещаются в системной таблице.
PS Кроме того, версия MySQL должна быть строго больше 5.1 (это не на всех хостингах выполняется). | |
|
|
|
|
|
|
|
для: cheops
(02.02.2011 в 18:12)
| | Благодарю Вас за помощь, Вы мне дали пищу для размышления. | |
|
|
|