2017-11-06 4 views
0

私はpostgresql DBとテーブルを約40万行にしました。デフォルト値の新しい列を追加しようとしたとき:デフォルト値で新しい列を追加する最も良い方法

ALTER TABLE tabl1 
ADD COLUMN col1 integer NOT NULL DEFAULT 0; 

15分以上かかる。我々は最小限のダウンタイムでデフォルト値に

+1

を設定するには、ライターの更新クエリは、あなたが列を作ることができるはずを追加する必要がありますデフォルト値を代入しないで、実際にクエリを実行するときに 'COALESCE'によってデフォルト値としてゼロを導入します。デフォルト値を割り当てるステップをスキップすると時間が節約されます。 –

答えて

0

を設定することができ、他の方法は、あなたが最初の列

ALTER TABLE tabl1 ADD COLUMN col1 integer DEFAULT 0; 

、あなたは

Update table1 set col1=0 
+0

1つのトランザクションで4000万レコードを更新できますか? –

+0

'default 0 'で列を追加すると、後でテーブルを更新すると意味がありません。なぜなら、すべての列に既定値があるからです。 –

+0

あなたは4000万レコードを簡単に更新できると思います –

関連する問題