2013-04-14 3 views
0

У меня есть cronjob, который выполняет цикл и обновляет таблицу MySQL по строкам. После того, как таблица «завершена», я хотел бы выполнить cronjob ровно еще 1 раз, чтобы выполнить различные действия по очистке.Может ли таблица mysql содержать флаг метаданных конкретной таблицы

В execute a cronjob exactly once, thaJeztah гласит:

Лучше всего установить это значение в базе данных MySQL, например, needs_cleanup = 1. Таким образом, вы всегда сможете найти эти записи позднее. Сохранение его в базе данных позволяет восстановить, например, если cron-задание не выполнялось или не выполнялось на полпути цикла. - thaJeztah

Я думаю, что это было бы хорошим решением, если это возможно, так как в моем случае мне нужно установить флаг один раз в день. Если возможно, кто-то может указать мне на команды sql nescesary для выполнения размещения простого двоичного флага со значениями 0,1 в таблице mysql?

ответ

1
UPDATE mytable SET needs_cleanup = 1 

делает это для всех записей mytable. Если вам нужна одна запись, добавьте условие WHERE, например.

UPDATE mytable SET needs_cleanup = 1 
WHERE id = 1 
+0

Возможно ли это сделать без учета записей, но только таблицы? – user61629

+0

Весь смысл реляционных баз данных заключается в том, чтобы полагаться только на структуру данных одного типа - таблицу. Если вы начинаете добавлять атрибуты к таблице помимо полей, то она больше не является таблицей, и вам нужны другие типы (нереляционные) механизмы запросов. Вы могли бы изменить свойство комментариев таблицы, но я думаю, что это разрешены только последние версии MariaDB. Кроме того, вы можете иметь таблицу с именами таблиц и поле need_cleanup, чтобы отслеживать, какие таблицы нуждаются в обновлении. – koriander

+0

Спасибо, я собираюсь использовать ваш метод – user61629

Смежные вопросы