PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Non è possibile utilizzare semplicemente il nome della tabella PostgreSQL (la relazione non esiste)

Da quello che ho letto, questo errore significa che non stai facendo riferimento correttamente al nome della tabella. Un motivo comune è che la tabella è definita con un'ortografia mista e stai cercando di interrogarla con tutte le lettere minuscole.

In altre parole, ciò che segue non riesce:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Utilizza le virgolette doppie per delimitare gli identificatori in modo da poter utilizzare l'ortografia mista specifica quando viene definita la tabella.

SELECT * FROM "SF_Bands";

In base al tuo commento, puoi aggiungere uno schema a "percorso_ricerca" in modo che quando fai riferimento al nome di una tabella senza qualificarne lo schema, la query corrisponda a quel nome di tabella controllando ogni schema in ordine. Proprio come PATH nella shell o in include_path in PHP, ecc. Puoi controllare il tuo attuale percorso di ricerca dello schema:

SHOW search_path
  "$user",public

Puoi modificare il percorso di ricerca dello schema:

SET search_path TO showfinder,public;

Vedi anche http://www.postgresql.org/docs/8.3/static/ddl-schemas.html