Posted at

PostgreSQLで一時的にtriggerを全て無効する方法

More than 1 year has passed since last update.

9.6で試しています。もっといえば、Dockerのオフィシャルイメージのタグ 9.6-alpineです。

https://hub.docker.com/_/postgres/

Docker以降、OS上に直接 WEBやDBサーバーをインストールする機会がほとんど無くなりました。いいことです。

psqlで接続している時に、一時的にこのセッションでだけtriggerを無効/disableにしたい時ってあると思うんですが、日本語ではALTER TRIGGERの例しか見つからなかったので、共有です。

元ネタはStackOverflow

https://stackoverflow.com/questions/3942258/how-do-i-temporarily-disable-triggers-in-postgresql

psqlで以下を実行するだけです。

SET session_replication_role = replica;

なにかのお役にたてば。