最初に結論から言っちゃいます!
PostgresSQLはMySQLのように、任意の位置にカラム(フィールド)を追加したり、順番を変更することはできません!
この事実は、既にPostgresSQLのwikiに書いてあります。
postgresqlの初心者の多くからよく、テーブル内の列の位置を変更することはサポートされているかどうか聞かれます。 今のところサポートされていません。 列の位置を変更したいのであれば、テーブルを再作成するか、新しい列を追加してデータを移動するかのいずれかを行う必要があります。 列の位置の順序の変更を許すという考えをpostgresql開発者は対象としていません。
引用:Alter column position/ja – PostgreSQL wiki
しかし、同ページに書いてある2つの方法で、カラムを指定の位置に並び替えることができます。
列変更の回避方法
- テーブル再作成
- 新しいテーブルを目的とする列の順序で作成し、そのデータを更新した後で、古いテーブルを削除して何らかの依存関係を解決します。
- 列を追加しデータを移動
- 目的とする順序で列の最後に追加して、それぞれ対応した列で更新し、その後古い列を削除します。
最後に、「ビューを使用した違いの隠ぺい」も参考にしてみてください。
- Original:https://minory.org/postgresql-column-position.html
- Source:Minory
- Author:管理者