PostgreSQL: Проверка ЕСЛИ, ТО при записи

Доброго времени суток.

Имеется таблица dates в которой существует три колонки: start_date (DATE), end_date (DATE) и is_end (INTEGER). Для колонки end_date стоит DEFAULT CURRENT_TIMESTAMP, а для is_end DEFAULT 0.

Интересует реализация следующего функционала: проверка ПРИ ЗАПИСИ, если от даты начала (start_date) до даты конца (end_date) прошло более, чем 14 дней, то в поле is_end автоматически будет записан 1, если же условие не соблюдается, то 0.


Ответы (1 шт):

Автор решения: Roman Konoval

используйте оператор case:

UPDATE dates
SET is_end = CASE WHEN end_date - start_date <= interval '14 days' THEN 1 ELSE 0 END
→ Ссылка