coloque o nome da tabela entre aspas duplas se quiser que o postgres preserve maiúsculas e minúsculas para nomes de relações.
A citação de um identificador também diferencia maiúsculas de minúsculas, enquanto nomes sem aspas são sempre dobrados para letras minúsculas . Por exemplo, os identificadoresFOO, foo e "foo" são considerados iguais pelo PostgreSQL, mas "Foo" e "FOO" são diferentes desses três e um do outro. (A dobragem de nomes sem aspas para letras minúsculas no PostgreSQL é incompatível com o padrão SQL, que diz que nomes sem aspas devem ser dobrados para maiúsculas. Assim, foo deve ser equivalente a "FOO" e não "foo" de acordo com o padrão. Se você quiser escrever aplicativos portáteis que você recomenda sempre citar um nome específico ou nunca citá-lo .)
de documentos (ênfase minha)
exemplo com citação:
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)
exemplo sem citar:
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)
Portanto, se você criou uma tabela com aspas, não deve pular as aspas consultando-a. Mas se você pulou as aspas criando o objeto, o nome foi dobrado para minúsculas e, portanto, ficará com o nome em maiúsculas na consulta - dessa forma, você "não notará".