2013-12-15 3 views
0

У меня есть булевский столбец с именем «взято», как бы я установил его так, чтобы каждый столбец каждый день вводил значение false в полночь? И как файл будет запущен? это просто отдельный файл php, который работает каждую ночь?обновление boolean postgresql в полночь каждый день?

+2

update query + cron –

+0

очень полезно ... – Ben

ответ

0

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

Вместо этого замените булевский столбец на дату. Установите его на текущую дату, а не на значение boolean на значение true, а на null вместо boolean на false.

Затем прочитайте значение, как это, предполагая, что столбец является date_taken:

SELECT coalesce((date_taken=current_date),false) AS taken, ... FROM tablename; 
  • если date_taken=current_date, это означает, что он был установлен сегодня, таким образом, дает истинное.
  • если date_taken<>current_date, он был установлен, но ранее, поэтому он дает ложь, как если бы была запущена полнофункциональная партия обновлений.
  • если date_taken имеет значение null, он никогда не был установлен или не установлен в значение null, а значение coalesce() дает значение false.
Смежные вопросы