Триггер обновления Postgresql не принимает условие Когда / OF - PullRequest
0 голосов
/ 15 мая 2011

Я пытаюсь написать триггер, но получаю синтаксическую ошибку:

CREATE TRIGGER archive_domain_trig
  AFTER UPDATE OF is_rejected ON pending_domains
  FOR EACH ROW 
  WHEN (new.is_rejected is True)
  EXECUTE PROCEDURE archive_domain_fun();

ОШИБКА: синтаксическая ошибка в или около "OF"

не только это, но и выдает ошибку "когда "условие также, например,

CREATE TRIGGER archive_domain_trig
  AFTER UPDATE ON pending_domains
  FOR EACH ROW 
  WHEN (new.is_rejected is True)
  EXECUTE PROCEDURE archive_domain_fun();

дает:

ОШИБКА: синтаксическая ошибка в или около" WHEN ".

select version();
"EnterpriseDB 8.3.0.116 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.0"

Это почти аналогично примеру postgres,Может кто-нибудь сказать мне, что я здесь делаю не так?

1 Ответ

3 голосов
/ 15 мая 2011

Я предполагаю, что EnterpriseDB 8.3 - это версия PostgreSQL 8.3 для EnterpriseDB. Условные триггеры (то есть опция WHEN) - это новая функция в PostgreSQL 9.0. Сравните документацию CREATE TRIGGER для 8.3 и 9.0 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...