Postgresql 更新触发器不接受 When / OF 条件



我正在尝试编写触发器但收到语法错误:

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 示例,谁能告诉我我在这里做错了什么?

我猜EnterpriseDB 8.3

是PostgreSQL 8.3的EnterpriseDB版本。条件触发器(即WHEN选项)是PostgreSQL 9.0中的一个新功能。比较 8.3 和 9.0 的创建触发器文档。

相关内容

最新更新