sql >> データベース >  >> RDS >> PostgreSQL

postgresを使用してテーブルの2番目または3番目の列の後にテーブルに新しい列を追加するにはどうすればよいですか?

    いいえ、それを直接行う方法はありません。そして、それには理由があります。すべてのクエリは、必要なすべてのフィールドを必要な順序(および形式など)でリストする必要があるため、1つのテーブルの列の順序は重要ではありません。

    本当にそれを行う必要がある場合は、1つの回避策を考えることができます:

    • 問題のテーブルの説明をダンプして保存します(pg_dump --schema-only --table=<schema.table> ...を使用) )
    • 保存された定義の必要な場所に必要な列を追加します
    • 保存した定義のテーブルの名前を変更して、作成しようとしたときに古いテーブルの名前と衝突しないようにします。
    • この定義を使用して新しいテーブルを作成します
    • 'INSERT INTO <new_table>を使用して、新しいテーブルに古いテーブルのデータを入力します SELECT field1、field2、<default_for_new_field> 、field3、... FROM <old_table> ';
    • 古いテーブルの名前を変更する
    • 新しいテーブルの名前を元の名前に変更します
    • すべてが正常であることを確認した後、最終的に古い名前の変更されたテーブルを削除します


    1. 結合されたセットにすべての値が含まれている必要がありますが、それ以上の値が含まれている可能性があるSQL

    2. 接続文字列からデフォルトのスキーマを設定できますか?

    3. リンクサーバーのリモートサーバー名を検索するためのT-SQL

    4. Nagiosを使用してPostgreSQLを監視する方法