[mysql]автоматическая очистка таблицы

iakobi91

Есть такая задача: есть таблица в базе, в которой кроме всего прочего храницца дата обновления/создания стоки. ПО истечении трех месяцев строка должна удаляцца. Как это осуществить? Пока идея только одна - при каждом заходе на страницу на сервере выполнять скриптик, который все это сделает, но как-то меня смущает лишний раз бегать по таблице с проверкой. Есть ведь какие-то лаконичные решения, проблема вряд ли нова...

margadon

повесить на крон скрипт, который раз в неделю/день/час (в зависимости от срочности) пробегает таблицу одним SQL-запросом... самое прямолинейное решение

iakobi91

для чайников объясни, как это делаецца или ссылку дай где почитать плз. Моя стихия пхп/мускуль...

margadon

ну cron это средство операционки (вероятно, на серваке *nix система?)... типа недеццкий такой шедулер.
будет вызывать твой скрипт, когда повелишь
я им пользоваться не умею, ибо виндузятник
думаю, man cron будет достаточно для дальнейших изысканий?

Ivan8209

> я им пользоваться не умею, ибо виндузятник
Под винду тоже есть cron и даже не один.
> думаю, man cron будет достаточно для дальнейших изысканий?
Нет, нужно читать crontab(1) и crontab(5).
---
"Аллах не ведёт людей неверных."

margadon

да, я знаю, как-то ставил порт крона nnCron, но потом чё-то снёс
не понадобился
с большинством нужных задач справляется виндовый шедулер
будет что-то хитрое, поставлю посерьёзней

iakobi91

Такс, сервак удаленный и администрировать его мне не дают. Есть только доступ по фтп/хттп. Цги-бин закрыта. Просить расширения прав?

margadon

могут и не разрешить
если так, то запускай с удалённой машины скрипт в нужное время =)

2354570

+1.
Только обязательно требуй передачи какого-нить хитрого параметра скрипту, чтобы твою таблицу нечаянно не очистили невовремя, запросив скрипт "наобум".

Ivan8209

> да, я знаю, как-то ставил порт крона nnCron, но потом чё-то снёс
nnCron --- это не порт, а самостоятельное приложение, очень сильно отличающееся от cron,
хотя и предназначено для того же.
---
...Я работаю антинаучным аферистом...

0000

А неужто на MySQL нет каких то встроенных средств а ля tasks или jobs?

Ivan8209

А зачем?
Зачем дублировать выполнение по расписанию, которое уже есть и называется cron?
---
Q44: Что такое unixway?
A44: Ламеpы в гамаке пусть в тапках тpахаются --- это их пpоблемы.
Я в своём гамаке хочу полноценно тpахаться на лыжах.

artimon

Только обязательно требуй передачи какого-нить хитрого параметра скрипту, чтобы твою таблицу нечаянно не очистили невовремя, запросив скрипт "наобум".
Зачем?
Выполнятся всё равно должно что-то типа:
delete from mytable where modified раньше чем 3 месяца назад;

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

Ivan8209

> Этот запрос можно хоть каждый день выполнять, ничего лишнего не удалится.
Однако "раньше чем 3 месяца назад" меняется каждый день.
---
...Я работаю антинаучным аферистом...

Marinavo_0507

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

Marinavo_0507

Зачем дублировать выполнение по расписанию, которое уже есть и называется cron?
Например, чтобы не генерировать лишний пароль, и не придумывать, где бы его сохранить.
Конечно, авторизация через SO_PEERCRED - была бы оптимальней.

artimon

Однако "раньше чем 3 месяца назад" меняется каждый день.
есть таблица в базе, в которой кроме всего прочего храницца дата обновления/создания стоки. ПО
истечении трех месяцев строка должна удаляцца.
В чём противоречие?

artimon

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

Marinavo_0507

Поэтому правильнее, наверное, не по времени смотреть, а по количеству запусков скрипта.
А если важно именно точное реальное время, то, можно попытаться отслеживать скачки. Типа если по местным часам прошло более 3 дней с прошлого запуска, а нужно запускать раз в день, то ничего не стирать, а написать админу - чтоб разобрался.

Ivan8209

Ну да, встроить всё было бы лучше всего.
Только для этого нужно приложить больше усилий.
---
Q22: and what does not suck then?
A22: Microsoft vacuum-cleaner.
Оставить комментарий
Имя или ник:
Комментарий: