Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql postgres触发创建_Postgresql_Triggers - Fatal编程技术网

Postgresql postgres触发创建

Postgresql postgres触发创建,postgresql,triggers,Postgresql,Triggers,如何仅在触发器不存在时创建它 当我创建或替换时,会出现语法错误,因此我正在寻找一种方法来测试触发器的存在 我总是可以从pg_触发器中选择*,但我相信有更合适的方法 谢谢Postgres可以有条件地触发-请参阅。在创建触发器之前执行此操作,它将始终工作 DROP TRIGGER IF EXISTS mytrigger ON mytable; 正如Jack在评论中指出的,该功能仅在8.2版之后才可用;不过,它已经发布四年多了,所以应该可以在您的版本中使用 CREATE TRIGGER (NameO

如何仅在触发器不存在时创建它

当我创建或替换时,会出现语法错误,因此我正在寻找一种方法来测试触发器的存在

我总是可以从pg_触发器中选择*,但我相信有更合适的方法


谢谢

Postgres可以有条件地触发-请参阅。在创建触发器之前执行此操作,它将始终工作

DROP TRIGGER IF EXISTS mytrigger ON mytable;
正如Jack在评论中指出的,该功能仅在8.2版之后才可用;不过,它已经发布四年多了,所以应该可以在您的版本中使用

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


@El Yobo,值得一提的是,该功能是在8年引入的。2@ElYOBO很难确定有多少仍然在使用8.1 -我认为一个关键的因素是,它是RHEL5上的默认安装,我怀疑这意味着使用仍然是普遍的,是的,我有…很高兴。。。前几天设置RHEL服务器。我原以为Debian stable在后面,但RHEL拿了蛋糕。这是放弃的一个很好的答案,但在创建触发器之前,我如何检查触发器是否存在,这才是真正的我呢after@reza:如果您总是先放下它,您将始终能够安全地创建它。这可以安全地确保在您尝试创建它时它永远不存在。提及您正在使用的postgres版本总是一个好主意
DROP TRIGGER IF EXISTS (NameOfTrigger) ON (NameOfTable);