postgres触发器创建

时间:2010-12-09 01:29:31

标签: postgresql triggers

如果触发器不存在,我该如何创建它呢?

当我创建或替换时,我收到语法错误,所以我正在寻找一种方法来测试是否存在触发器。

我总是可以从pg_trigger中选择*,但我确信有更合适的方法。

由于

2 个答案:

答案 0 :(得分:17)

Postgres可以有条件地放下触发器 - 请参阅the docs。在创建触发器之前执行,然后它将始终有效。

DROP TRIGGER IF EXISTS mytrigger ON mytable;

正如杰克在评论中指出的那样,这个功能自8.2以来才可用;这已经超过四年了,所以它应该在你的版本中可用。

答案 1 :(得分:0)

CREATE TRIGGER (NameOfTrigger) AFTER INSERT OR UPDATE ON (NameOfTable)   

DROP TRIGGER IF EXISTS (NameOfTrigger) ON (NameOfTable);