metti il nome della tabella tra virgolette se vuoi che postgres conservi maiuscole e minuscole per i nomi delle relazioni.
Citare un identificatore rende anche la distinzione tra maiuscole e minuscole, mentre i nomi unquoted vengono sempre piegati in minuscolo . Ad esempio, gli identificatoriFOO, foo e "foo" sono considerati gli stessi da PostgreSQL, ma "Foo" e "FOO" sono diversi da questi tre e l'uno dall'altro. (La piegatura dei nomi senza virgolette in minuscolo in PostgreSQL è incompatibile con lo standard SQL, che dice che i nomi senza virgolette dovrebbero essere piegati in maiuscolo. Quindi, foo dovrebbe essere equivalente a "FOO" non "foo" secondo lo standard. Se vuoi scrivere applicazioni portatili a cui hai consigliato di citare sempre un nome particolare o di non citarlo mai .)
da documenti (enfasi mia)
esempio con virgolette:
t=# create table "UC_TNAME" (i int);
CREATE TABLE
t=# \dt+ UC
t=# \dt+ "UC_TNAME"
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | UC_TNAME | table | postgres | 0 bytes |
(1 row)
esempio senza virgolette:
t=# create table UC_TNAME (i int);
CREATE TABLE
t=# \dt+ UC_TNAME
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | uc_tname | table | postgres | 0 bytes |
(1 row)
Quindi, se hai creato una tabella con virgolette, non dovresti saltare le virgolette durante la query. Ma se hai saltato le virgolette creando l'oggetto, il nome è stato piegato in minuscolo e così sarà con il nome maiuscolo nella query:in questo modo "non lo noterai".