Способ автоматизировать удаление просроченных записей в MySQL? - PullRequest
3 голосов
/ 06 февраля 2009

Я гуглил и искал в MYSQL docs ad nauseam и не смог найти краткий способ автоматизации удаления записей, превышающих заданный период времени. Я был в состоянии получить запрос в 5.1 для приведения значения TIMESTAMP к DATETIME в функции DIFF с текущим временем, чтобы проверить, соответствует ли оно критериям срока действия. Я читал, что 5.1 теперь имеет возможность запускать запланированные задачи, но не так сильно, как его настройка. Я не использую триггеры для этого.

В документации MySQL для 5.1 это относится к созданию события:

'CREATE 
[DEFINER = { user | CURRENT_USER }]
EVENT 
[IF NOT EXISTS]
event_name    
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO sql_statement;

schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval 
[STARTS timestamp [+ INTERVAL interval] ...] 
[ENDS timestamp [+ INTERVAL interval] ...]

interval:

В настоящее время я использую жабу (которая была находкой). Мой запрос аффективно удаляет все записи старше 30 минут. Мне просто нужно выяснить, как вызывается это событие ...

Спасибо!

Ответы [ 3 ]

5 голосов
/ 07 февраля 2009

Вы говорите об использовании MySQL Scheduler . Как только вы создадите это событие, MySQL будет вызывать его автоматически с любым интервалом, с которым вы его настраиваете. Если у вас возникли проблемы с его настройкой, опубликуйте запрос и получите ошибку.

1 голос
/ 06 февраля 2009

Напишите запрос и часто запускайте его на работе. Скажем, проверять просроченные строки каждые 30 минут или около того.

0 голосов
/ 07 февраля 2009

Если оно не должно быть точным, и вы просто ведете домашнее хозяйство, вы можете связать процесс с другим. Если вы можете позволить себе время.

Если у вас есть старый файл счета-фактуры, очистите его, когда закончится конец месяца (возможно, много записей, но в любом случае это пакетный процесс). Удаляйте старые предметы из инвентаря, когда добавляете новые (реже, но, возможно, меньше записей). Ведение таблицы журнала доступа? Очистите его, когда самая последняя запись в нем попадает в другой день, чем сегодня. (для журналов с низким трафиком) И так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...