В базе данных PostgreSQL у меня есть таблица с именем SURVEYS
, которая выглядит следующим образом:
| ID (uuid) | name (varchar) | status (boolean) | update_at (timestamp) |
|--------------------------------------|----------------|------------------|--------------------------|
| 9bef1274-f1ee-4879-a60e-16e94e88df38 | Doom | 1 | 2019-03-26 00:00:00 |
Как видите, в таблице есть столбцы status
и update_at
.
Моя задача - создать триггер, который запустит функцию, если пользователь обновит значение в столбце status
до 2
и изменит значение в столбце update_at
.В функции я бы использовал идентификатор записи, которая была изменена.Я создал такой триггер.Как вы думаете, правильно ли проверять значения столбцов в триггере, или мне нужно проверить это в функции?Я немного смущен.
CREATE TRIGGER СHECK_FOR_UPDATES_IN_SURVEYS
BEFORE UPDATE ON SURVEYS
FOR EACH ROW
WHEN
(OLD.update_at IS DISTINCT FROM NEW.update_at)
AND
(OLD.condition IS DISTINCT FROM NEW.condition AND NEW.condition = 2)
EXECUTE PROCEDURE CREATE_SURVEYS_QUESTIONS_RELATIONSHIP(NEW.id);