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

postgresql_add_cols
  • URLをコピーしました!

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

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

引用:Alter column position/ja – PostgreSQL wiki

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

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

列変更の回避方法

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

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

東京生まれ福岡育ちの文系プログラマー。
テクノロジーの恩恵を感じながら日々精進しています。
広く浅くをモットーに、最近ではプログラミングだけでなく、仮想サーバーからセキュリティ、監視システムなども勉強中です。

コメント

コメント一覧 (1件)

コメントする

CAPTCHA


目次