Mam do powiedzenia tabeli db, persons
w PostgreSQL wydawane są przez inny zespół, który ma nazwę kolumna powiedzenia, "first_Name"
. Teraz próbuję użyć dowódcy PG, aby zapytać tę tabelę o tę nazwę kolumny.
select * from persons where first_Name="xyz";
I po prostu wraca
BŁĄD: kolumna „first_Name” nie istnieje
Nie masz pewności, czy robię coś głupiego, czy też istnieje obejście tego problemu, którego brakuje?
źródło
foobar
,FOOBAR
iFooBar
mają ten sam identyfikator. Jednakże"foobar"
,"FooBar"
i"FOOBAR"
są różne identyfikatoryfoobar
iFOOBAR
są takie same jak"FOOBAR"
w potgresqlFOOBAR
ifoobar
etc są takie same jak"foobar"
.Aby zacytować dokumentację :
Możesz również napisać to za pomocą cudzysłowów :
Cytowanie identyfikatora sprawia, że rozróżniana jest wielkość liter, podczas gdy nazwy bez cudzysłowu są zawsze zawijane do małych liter (w przeciwieństwie do standardu SQL, w którym nazwy bez cudzysłowów są zawijane do wielkich liter). Na przykład, identyfikatory
FOO
,foo
i"foo"
są uważane za takie same przez PostgreSQL, ale"Foo"
i"FOO"
różnią się od tych trzech i siebie nawzajem.Jeśli chcesz pisać aplikacje przenośne, radzimy zawsze cytować określoną nazwę lub nigdy jej nie cytować.
źródło
Nazwy kolumn, które są mieszane lub wielkie, muszą być w PostgresQL cudzysłowem. Dlatego najlepszą konwencją będzie śledzenie wszystkich małych spraw z podkreśleniem.
źródło