Eu tenho uma tabela db, digamos, persons
no Postgres transmitida por outra equipe que tem um nome de coluna, digamos "first_Name"
,. Agora estou tentando usar o comandante PG para consultar esta tabela neste nome de coluna.
select * from persons where first_Name="xyz";
E isso apenas retorna
ERRO: a coluna "first_Name" não existe
Não tenho certeza se estou fazendo algo bobo ou se há uma solução alternativa para esse problema que estou perdendo?
fonte
foobar
,FOOBAR
eFooBar
são o mesmo identificador. No entanto"foobar"
,"FooBar"
e"FOOBAR"
são identificadores diferentesfoobar
eFOOBAR
são iguais a"FOOBAR"
, sob potgresqlFOOBAR
efoobar
etc são iguais a"foobar"
.Para citar a documentação :
Você também pode escrevê-lo usando identificadores citados :
A citação de um identificador faz distinção entre maiúsculas e minúsculas, enquanto nomes sem aspas são sempre dobrados para minúsculas (ao contrário do padrão SQL em que nomes sem aspas são dobrados para maiúsculas). Por exemplo, os identificadores
FOO
,foo
e"foo"
são considerados o mesmo pelo PostgreSQL, mas"Foo"
e"FOO"
são diferentes dos três primeiros e uns aos outros.Se você deseja escrever aplicativos portáteis, é aconselhável que cite sempre um nome específico ou nunca o cite.
fonte
Os nomes das colunas que são maiúsculas ou minúsculas precisam ser citados duas vezes no PostgresQL. Portanto, a melhor convenção será seguir todos os casos pequenos com sublinhado.
fonte