いいえ、それを直接行う方法はありません。そして、それには理由があります。すべてのクエリは、必要なすべてのフィールドを必要な順序(および形式など)でリストする必要があるため、1つのテーブルの列の順序は重要ではありません。
本当にそれを行う必要がある場合は、1つの回避策を考えることができます:
- 問題のテーブルの説明をダンプして保存します(
pg_dump --schema-only --table=<schema.table> ...
を使用) ) - 保存された定義の必要な場所に必要な列を追加します
- 保存した定義のテーブルの名前を変更して、作成しようとしたときに古いテーブルの名前と衝突しないようにします。
- この定義を使用して新しいテーブルを作成します
- 'INSERT INTO
<new_table>
を使用して、新しいテーブルに古いテーブルのデータを入力します SELECT field1、field2、<default_for_new_field>
、field3、... FROM<old_table>
'; - 古いテーブルの名前を変更する
- 新しいテーブルの名前を元の名前に変更します
- すべてが正常であることを確認した後、最終的に古い名前の変更されたテーブルを削除します