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

Não é possível simplesmente usar o nome da tabela PostgreSQL (a relação não existe)


Pelo que li, esse erro significa que você não está referenciando o nome da tabela corretamente. Um motivo comum é que a tabela é definida com uma ortografia de maiúsculas e minúsculas e você está tentando consultá-la com todas as letras minúsculas.

Em outras palavras, o seguinte falha:
CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Use aspas duplas para delimitar identificadores para que você possa usar a grafia específica de maiúsculas e minúsculas conforme a tabela é definida.
SELECT * FROM "SF_Bands";

No seu comentário, você pode adicionar um esquema ao "search_path" para que, quando você fizer referência a um nome de tabela sem qualificar seu esquema, a consulta corresponda a esse nome de tabela verificando cada esquema em ordem. Assim como PATH no shell ou include_path em PHP, etc. Você pode verificar seu caminho de pesquisa de esquema atual:
SHOW search_path
  "$user",public

Você pode alterar seu caminho de pesquisa de esquema:
SET search_path TO showfinder,public;

Consulte também http://www.postgresql.org/docs/8.3/static/ddl-schemas.html