1. ホーム
  2. sql

[解決済み】PostgreSQLのカラム名は大文字・小文字を区別する?

2022-04-12 20:10:47

質問

私はdbテーブルを持っています。 persons は、他のチームから受け継いだPostgresのカラム名で、例えば "first_Name" . 現在、PGコマンダーを使用して、このカラム名のテーブルを照会しようとしています。

select * from persons where first_Name="xyz";

そして、それは単に

ERROR: 列 "first_Name" が存在しません。

私が何か愚かなことをしているのか、それとも私が見逃しているこの問題に対する回避策があるのか、よくわかりません。

解決方法は?

識別子 (カラム名を含む)であって ではない PostgreSQLでは、二重引用符で囲まれた文字は小文字に折り返されます。で作成された列名は ダブルクォート で、大文字が残っている (あるいは他の構文違反がある) 場合は、残りの期間も二重引用符で囲まなければなりません。

"first_Name"

価値観 (文字列リテラル/定数)は シングルクォート :

'xyz'

だから はい PostgreSQL のカラム名は大文字と小文字を区別します(二重引用符で囲んだ場合)。

SELECT * FROM persons WHERE "first_Name" = 'xyz';

識別子に関するマニュアルはこちらをご覧ください。

私は、ダブルクオートの必要がないように、合法的な小文字の名前のみを使用するようにと忠告しています。