http://www.postgresql.org/docs/9.0/static /sql-createtable.html セクション「延期されていない一意性制約」-「UNIQUEまたはPRIMARYKEY制約が延期できない場合、PostgreSQLは、行が挿入または変更されるたびにすぐに一意性をチェックします。」
一意の制約を延期可能に変更すると、更新が終了するまでチェックが保留されます。 SET CONSTRAINTSを使用してセッションレベルで無効にするか(これは煩わしい繰り返しです)、deferrableオプションを使用して一意性制約を削除して再作成します(削除せずにそれを行うALTER構文を認識していません)。