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

postgresでテーブルの列名を大文字に変更する

    これを行う方法を説明する前に、強く そうしないことをお勧めします。

    PostgreSQLでは、次のようにテーブル名または列名が引用符で囲まれていない場合:

    SELECT Name FROM MyTable WHERE ID = 10
    

    実際には自動的に小文字に折りたたまれます まず、上記のクエリは次と同じです:

    SELECT name FROM mytable WHERE id = 10
    

    すべての名前を大文字に変換する場合、このステートメントは機能しません

    SELECT NAME FROM MYTABLE WHERE ID = 10
    

    このクエリを機能させるには、このクエリのすべての名前を二重引用符で囲む必要があります。

    SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
    

    一方、標準のPostgreSQL小文字のみの契約を使用する場合は、任意の大文字と小文字の組み合わせを使用でき、名前を引用しない限り機能します。

    それでも大文字に変換する必要がある場合は、 pg_dump --schema-only

    それが終わったら、すべての CREATETABLE<を確認します。 / code> ステートメントを作成し、適切な ALTER TABLE を作成します このダンプに基づくステートメント-これを行うには、スクリプト(PerlまたはPython)を作成する必要があります。

    または、INFORMATION_SCHEMA.TABLES を読むこともできます。 および/または INFORMATION_SCHEMA.COLUMNS また、適切な ALTER TABLEを作成して実行します ステートメント。



    1. *とフィールド名のリストを使用したSELECTステートメントのパフォーマンス

    2. PDOを使用したpostgresでの自動ロールバック

    3. SQLクエリのSELECT句でのOraclePL/SQLステートメントの遅延評価

    4. MySQLの不正な日時値: '0000-00-00 00:00:00'