1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-02 22:58:01 +00:00
Files
til/postgres/temporarily-disable-triggers.md
2015-06-23 08:49:39 -05:00

28 lines
846 B
Markdown

# Temporarily Disable Triggers
In general, you are always going to want your triggers to fire. That's why
they are there. Though special circumstances may arise where you need to
temporarily disable them. Use
```sql
> set session_replication_role = 'replica';
SET
```
By changing the
[replication role](http://www.postgresql.org/docs/9.4/static/runtime-config-client.html#GUC-SESSION-REPLICATION-ROLE)
from `origin` to
`replica` you are essentially disabling all non-replica triggers across the
database (for that session). When you are done, you can simply set the
replication role back so that normal trigger behavior can resume
```sql
> set session_replication_role = 'origin';
SET
```
A more direct and fine-grained approach to disabling triggers is to use an
`alter table` command that targets a specific trigger.
h/t Jack Christensen