J'ai une table de base de données, persons
à Postgres, transmise par une autre équipe qui a un nom de colonne, par exemple "first_Name"
. J'essaie maintenant d'utiliser le commandant PG pour interroger cette table sur ce nom de colonne.
select * from persons where first_Name="xyz";
Et ça revient juste
ERREUR: la colonne "first_Name" n'existe pas
Je ne sais pas si je fais quelque chose de stupide ou existe-t-il une solution de contournement à ce problème qui me manque?
la source
foobar
,FOOBAR
etFooBar
sont le même identifiant. Cependant"foobar"
,"FooBar"
et"FOOBAR"
sont des identifiants différentsfoobar
etFOOBAR
sont les mêmes que"FOOBAR"
, sous potgresqlFOOBAR
etfoobar
etc sont les mêmes que"foobar"
.Pour citer la documentation :
Vous pouvez également l'écrire en utilisant des identifiants entre guillemets :
Le fait de citer un identifiant le rend sensible à la casse, tandis que les noms sans guillemets sont toujours pliés en minuscules (contrairement à la norme SQL où les noms sans guillemets sont pliés en majuscules). Par exemple, les identifiants
FOO
,foo
et"foo"
sont considérés comme identiques par PostgreSQL, mais"Foo"
et"FOO"
sont différents de ces trois et l'autre.Si vous souhaitez écrire des applications portables, il est conseillé de toujours citer un nom particulier ou de ne jamais le citer.
la source
Les noms de colonnes mixtes en majuscules ou en majuscules doivent être entre guillemets dans PostgresQL. La meilleure convention sera donc de suivre tous les petits cas avec un trait de soulignement.
la source