PostgreSQLでカラムを指定の位置に追加・変更する2つの方法

postgresql_add_cols
LINEで送る
Pocket

最初に結論から言っちゃいます!
PostgresSQLMySQLのように、任意の位置にカラム(フィールド)を追加したり、順番を変更することはできません
この事実は、既にPostgresSQLのwikiに書いてあります。

postgresqlの初心者の多くからよく、テーブル内の列の位置を変更することはサポートされているかどうか聞かれます。 今のところサポートされていません。 列の位置を変更したいのであれば、テーブルを再作成するか、新しい列を追加してデータを移動するかのいずれかを行う必要があります。 列の位置の順序の変更を許すという考えをpostgresql開発者は対象としていません。
Alter column position/ja – PostgreSQL wiki

しかし、同ページに書いてある2つの方法で、カラムを指定の位置に並び替えることができます。

Alter column position/ja - PostgreSQL wiki
Alter column position/ja – PostgreSQL wiki

列変更の回避方法

テーブル再作成
新しいテーブルを目的とする列の順序で作成し、そのデータを更新した後で、古いテーブルを削除して何らかの依存関係を解決します。
列を追加しデータを移動
目的とする順序で列の最後に追加して、それぞれ対応した列で更新し、その後古い列を削除します。

最後に、「ビューを使用した違いの隠ぺい」も参考にしてみてください。

この記事が気に入ったら
いいね ! しよう

Twitter で
LINEで送る
Pocket


1つのコメント

コメントを残す

Scroll Up