CONSTRAINTSは、現在のトランザクションにおける制約の検査方法を設定します。IMMEDIATE制約は、1つの文の実行が終わるごとに検査されます。DEFERRED制約は、トランザクションがコミットされるまで検査されません。全ての制約は、IMMEDIATEかDEFERREDのどちらかのモードを持ちます。DEFERRABLEの3つのうちのいずれかの性質が与えられます。CONSTRAINTSコマンドの影響を受けません。CONSTRAINTSを使用するとその振舞いを変更することができます。(これらは全て遅延可能です)。スキーマ名が指定されていない場合、最初に一致する名前を見つけ出すために現在のスキーマ検索パスが使用されます。ALLは遅延可能な全ての制約のモードを変更します。制約のモードをDEFERREDからIMMEDIATEに変更した場合は、新しい制約モードが遡及的に有効になります。CONSTRAINTSコマンドの実行中に検査されます。(そして、制約モードは変更されません)。CONSTRAINTSを利用すれば、トランザクションの特定の時点で強制的に制約の検査を実行することができます。今のところ、外部キー制約だけがこの設定の影響を受けます。検査制約や一意性制約の実行が遅延されることはありません。"制約トリガ"として宣言されたトリガも影響を受けます。注釈このコマンドが変更するのは、現在のトランザクション内の制約の動作のみです。したがって、トランザクションブロック(BEGIN/COMMITの間)の外部でこのコマンドが実行されても場合、何ら効果はありません。互換性このコマンドは、標準SQLで定義された動作に準拠しています。PostgreSQLでは適用対象が外部キー制約のみという制限があります。