Как именно вы создаете и «возвращаетесь»?С помощью datagrip?
Условие WHEN
было добавлено в Postgres 9.0.Некоторые старые (или плохие) клиенты могут быть устаревшими.Чтобы быть уверенным, проверьте в pgsql:
SELECT pg_get_triggerdef(oid, true)
FROM pg_trigger
WHERE tgrelid = 'candidates'::regclass -- schema-qualify name to be sure
AND NOT tgisinternal;
Любая фактическая WHEN
квалификация хранится во внутреннем формате в pg_trigger.tgqual
, кстати.Подробности в руководстве здесь .
Также каков ваш текущий search_path
и какова схема таблицы candidates
?
Выделяется, что таблица candidates
является неквалифицированным, в то время как триггерная функция entities.tf_update_candidate_location()
имеет квалификацию схемы ... Вы не путаете таблицы с одним и тем же именем в разных схемах БД, не так ли?эквивалентный синтаксис:
create trigger trigger_update_candidate_location
after update on candidates -- schema-qualify??
for each row
when (
(OLD.address1, OLD.address2, OLD.city, OLD.state, OLD.zip, OLD.country)
IS DISTINCT FROM
(NEW.address1, NEW.address2, NEW.city, NEW.state, NEW.zip, NEW.country)
)
execute procedure entities.tf_update_candidate_location();