前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

システム稼働中(運用中)のAlter Tableについて

PostgreSQLでAlter Tableを実行した場合、Exclusive Lockがかかり、Selectもできなくなる。
従って運用中のAlterTable,Vacuum Fullには注意が必要であるが、Webで調べたところによると、Alter Tableにかかる時間はdefault属性の有無によって異なるらしい。
ということで、null可でdefaultも無い場合には運用中の実施も問題ないが、default値をつけたい場合にはWebアプリなどのサービスはいったん止めてやった方が無難ということだろう。
以前、6万件近くのテーブルに対してdefault属性のあるAlterTableを実行し、大量のエラーを出したことがあったが、これで納得。