PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Definir o esquema no PostgreSQL JDBC não parece funcionar


user é uma função interna (e uma palavra-chave). Então você não pode realmente usá-lo como um nome de tabela:
psql (10.4)
Type "help" for help.

postgres=# select user;
   user
----------
 postgres
(1 row)

postgres=# select * from user;
   user
----------
 postgres
(1 row)

E por ser uma função não tem uma coluna name .
postgres=# select name from user;
ERROR:  column "name" does not exist
LINE 1: select name from user;
               ^
postgres=#

Se você qualificar a tabela, fica claro que você não está fazendo referência à função, mas à tabela.

Você pode sempre qualificar o nome da tabela com o esquema ou usar aspas duplas:select name from "user"; ou simplesmente encontre um nome de tabela que não colida com funções internas.