我批量加载数据,可以重新计算所有触发修改后,比按行计算更便宜。
如何暂时禁用PostgreSQL中的所有触发器?
我批量加载数据,可以重新计算所有触发修改后,比按行计算更便宜。
如何暂时禁用PostgreSQL中的所有触发器?
当前回答
你也可以禁用pgAdmin (III)中的触发器:
找到你的座位 展开+ 在触发器中找到你的触发器 右键单击,取消勾选“已启用触发器?”
其他回答
对于禁用触发器
ALTER TABLE table_name DISABLE TRIGGER trigger_name
对于启用触发器
ALTER TABLE table_name ENABLE TRIGGER trigger_name
PostgreSQL知道ALTER TABLE tblname DISABLE TRIGGER USER命令,这似乎是我所需要的。参见ALTER TABLE。
或者,如果你想禁用所有触发器,而不仅仅是USER表上的触发器,你可以使用:
SET session_replication_role = replica;
这将禁用当前会话的触发器。
为同一会话重新启用:
SET session_replication_role = DEFAULT;
来源:http://koo.fi/blog/2013/01/08/disable-postgresql-triggers-temporarily/
一个非常优雅的处理方法是创建一个处理数据库填充的角色,并为该角色设置复制:
ALTER ROLE role_name SET session_replication_role = 'replica';
这样你就可以使用这个角色来填充数据,而不必担心禁用和重新启用触发器等。
你也可以禁用pgAdmin (III)中的触发器:
找到你的座位 展开+ 在触发器中找到你的触发器 右键单击,取消勾选“已启用触发器?”