Postgres

【Postgres】制約チェックのタイミングをコミット時に行う

テーブルに外部キー制約などを設定している場合、テストデータを挿入するときなどに邪魔になるときがある。

その場合は、制約チェックのタイミングをコミット時に行うようにするとよい。

 

テストデータ挿入前に以下SQLを発行。

SET CONSTRAINTS DEFERRED;

DEFERRED:制約チェックをコミット時に行う

 

テストデータ挿入後は、以下SQLを発行し制約チェックのタイミングを即時行うように戻す。

SET CONSTRAINTS IMMEDIATE;

IMMEDIATE:制約チェックを各ステートメントの最後に行う