ホームページ >データベース >mysql チュートリアル >PostgreSQL のテーブル名と列名の大文字と小文字の区別の問題を解決するにはどうすればよいですか?
PostgreSQL のテーブル名と列名における大文字と小文字の区別の処理
PostgreSQL によるテーブル名と列名の処理は、それらが引用符で囲まれているかどうかによって異なります。 引用符で囲まれていない識別子 (myTable
など) は大文字と小文字が区別されません。つまり、MyTable
、mytable
、および MYTABLE
はすべて同じオブジェクトを参照します。 引用符で囲まれた識別子 ("MyTable"
など) では大文字と小文字が区別されます。
この違いは、データベース、特に大文字と小文字の区別が異なる可能性がある MSSQL などのシステムから移行するときに問題を引き起こすことがよくあります。 たとえば、STD_TYPE_CODES
という名前のテーブルがインポートされ、それを std_type_codes
としてクエリしようとすると、PostgreSQL がそれらを個別のオブジェクトとして解釈するため、エラーが発生します。
解決策:
<code class="language-sql">SELECT * FROM "STD_TYPE_CODES";</code>
ただし、テーブルが多数ある場合、これは面倒です。
PostgreSQL の暗黙的な小文字化: PostgreSQL は、引用符で囲まれていない識別子を内部で自動的に小文字に変換します。 したがって、STD_TYPE_CODES
、std_type_codes
、および HeLLo
はすべて "std_type_codes"
として扱われます。
ベスト プラクティス: 一貫した名前付け: 将来の問題を避けるために、新しいテーブルとビューを作成するときは、引用符で囲まれていない小文字の名前を一貫して使用してください。
既存のテーブルの名前変更: 大文字と小文字が一致しない既存のテーブルの場合は、ALTER TABLE
:
<code class="language-sql">ALTER TABLE "FOO" RENAME TO foo;</code>
以上がPostgreSQL のテーブル名と列名の大文字と小文字の区別の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。