Ich habe eine DB-Tabelle persons
in Postgres, die von einem anderen Team mit einem Spaltennamen überliefert wurde "first_Name"
. Jetzt versuche ich, PG Commander zu verwenden, um diese Tabelle nach diesem Spaltennamen abzufragen.
select * from persons where first_Name="xyz";
Und es kehrt einfach zurück
FEHLER: Spalte "Vorname" existiert nicht
Sie sind sich nicht sicher, ob ich etwas Dummes mache oder ob es eine Problemumgehung für dieses Problem gibt, die mir fehlt?
quelle
foobar
,FOOBAR
undFooBar
ist die gleiche Kennung. Allerdings"foobar"
,"FooBar"
und"FOOBAR"
sind unterschiedliche Bezeichnerfoobar
undFOOBAR
sind die gleichen wie"FOOBAR"
, unter potgresqlFOOBAR
undfoobar
etc sind die gleichen wie"foobar"
.So zitieren Sie die Dokumentation :
Sie können es auch mit Anführungszeichen schreiben :
Wenn Sie einen Bezeichner angeben, wird zwischen Groß- und Kleinschreibung unterschieden, während nicht zitierte Namen immer in Kleinbuchstaben gefaltet werden (im Gegensatz zum SQL-Standard, bei dem nicht zitierte Namen in Großbuchstaben gefaltet werden). Zum Beispiel können die Kennungen
FOO
,foo
und"foo"
sind die gleichen von PostgreSQL betrachtet, sondern"Foo"
und"FOO"
unterscheiden sich von diesen drei und miteinander.Wenn Sie tragbare Anwendungen schreiben möchten, wird empfohlen, immer einen bestimmten Namen oder niemals einen bestimmten Namen anzugeben.
quelle
Die Spaltennamen in Groß- oder Kleinschreibung müssen in PostgresQL in doppelte Anführungszeichen gesetzt werden. Die beste Konvention ist es also, alle kleinen Fälle mit Unterstrich zu verfolgen.
quelle