postgres 触发器创建
如果触发器不存在,如何仅创建触发器?
当我创建或替换时,我收到语法错误,因此我正在寻找一种方法来测试触发器是否存在。
我总是可以从 pg_trigger 选择 *,但我确信有更合适的方法。
谢谢
How do I only create a trigger if it does not exist?
When I do create or replace, I get a syntax error so I am looking for a way to test for the existence of a trigger.
I can always select * from pg_trigger, but I am sure there is a more suitable way.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Postgres 可以有条件地删除触发器 - 请参阅文档。在创建触发器之前执行此操作,那么它将始终有效。
正如 Jack 在评论中指出的那样,此功能从 8.2 起才可用;不过它已经发布四年多了,所以它应该可以在您的版本中使用。
Postgres can conditionally drop a trigger - see the docs. Do this before creating the trigger, then it will always work.
As Jack points out in the comments, this feature has only been available since 8.2; this has been out for more than four years though, so it should be available in your version.
您可以在创建触发器时替换 postgres 中的现有触发器 - 请参阅 docs
postgres 版本 12 及更高版本支持此功能。
you can replace the existing trigger in postgres while creating the trigger - see the docs
This is supported in postgres version 12 and above.