我想为 postgres 表“创建或替换”一个触发器。但是,没有这样的sql表达式。
我看到我可以先做一个“ DROP TRIGGER IF EXISTS
”( http://www.postgresql.org/docs/9.5/static/sql-droptrigger.html )。
我的问题是:
- 是否有比(
DROP
+CREATE
触发器)推荐/更好的选择 - 是否有没有这样的“创建或替换触发器”的原因(这可能意味着我不应该想要这样做)
请注意,oracle 中有一个“ Create or Replace Trigger
”( https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm )。然后,
- 是否为 Postgres 计划了这样的命令?
原文由 jbarrameda 发布,翻译遵循 CC BY-SA 4.0 许可协议
Postgresql 有事务 DDL,所以
BEGIN > DROP > CREATE > COMMIT
相当于CREATE OR REPLACE
这 是一篇很好的文章,介绍了 postgre 的事务 DDL 与其他系统(例如 oracle)的比较
当前 postgres 计划的有关 触发器 的功能不包括添加
REPLACE
语法。