ホームページ >データベース >mysql チュートリアル >PostgreSQL の列名の大文字と小文字が区別されるために SQL クエリが失敗するのはなぜですか?

PostgreSQL の列名の大文字と小文字が区別されるために SQL クエリが失敗するのはなぜですか?

DDD
DDDオリジナル
2025-01-13 06:54:44946ブラウズ

Why Does My SQL Query Fail Due to Case-Sensitive Column Names in PostgreSQL?

SQL の列名の大文字と小文字の区別

次の SQL ステートメントは、列名の大文字と小文字が一致しないため、エラーが発生します。

エラー メッセージ「列 "FK_Numbers_id" が存在しません」は、PostgreSQL がテーブル内で指定された列を見つけることができないことを示します。ただし、テーブル スキーマを確認したところ、名前が少し異なるだけで、列は存在します。

PostgreSQL では、列名は大文字と小文字が区別されます。これは、「FK_Numbers_id」と「fk_numbers_id」が別の列として扱われることを意味します。ただし、テーブル スキーマには、列が存在し、「FK_Numbers_id」という名前が付けられていることが示されています。

したがって、正しい SQL ステートメントは次のようになります。

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>

SQL ステートメントは、列名を二重引用符で囲むことにより、テーブル スキーマ内の大文字と小文字が区別される列名を明示的に参照します。これによりエラーが解決され、クエリが正常に実行できるようになります。

以上がPostgreSQL の列名の大文字と小文字が区別されるために SQL クエリが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。