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