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

时间:2011-05-15 04:25:47

标签: postgresql triggers

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

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 个答案:

答案 0 :(得分:3)

我猜想EnterpriseDB 8.3是PostgreSQL 8.3的EnterpriseDB版本。条件触发器(即WHEN选项)是PostgreSQL 9.0中的新功能。比较8.39.0的CREATE TRIGGER文档。