标签
PostgreSQL , 触发器 , enable , disable
背景
Oracle 临时关闭或启用触发器的语法如下
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4001.htm
ALTER TRIGGER [ schema. ]trigger
{ ENABLE
| DISABLE
| RENAME TO new_name
| COMPILE [ DEBUG ]
[ compiler_parameters_clause
[ compiler_parameters_clause ] ... ]
[ REUSE SETTINGS ]
} ;
PostgreSQL 触发器开关语法更丰富一些
PostgreSQL中对应的语法在alter table中,因为触发器与表相关,这样设计语法也符合逻辑的。
https://www.postgresql.org/docs/devel/static/sql-altertable.html
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
action [, ... ]
DISABLE TRIGGER [ trigger_name | ALL | USER ]
ENABLE TRIGGER [ trigger_name | ALL | USER ]
ENABLE REPLICA TRIGGER trigger_name
ENABLE ALWAYS TRIGGER trigger_name
细节(注意触发器被触发还受制于session_replication_role参数与replica|always的配置。)
These forms configure the firing of trigger(s) belonging to the table. A disabled trigger is still known to the system, but is not executed when its triggering event occurs. For a