PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Impossible d'utiliser simplement le nom de la table PostgreSQL (la relation n'existe pas)

D'après ce que j'ai lu, cette erreur signifie que vous ne référencez pas correctement le nom de la table. Une des raisons courantes est que le tableau est défini avec une orthographe à casse mixte et que vous essayez de l'interroger en minuscules.

En d'autres termes, ce qui suit échoue :

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Utilisez des guillemets doubles pour délimiter les identificateurs afin de pouvoir utiliser l'orthographe spécifique à casse mixte lors de la définition du tableau.

SELECT * FROM "SF_Bands";

Concernant votre commentaire, vous pouvez ajouter un schéma au "search_path" de sorte que lorsque vous référencez un nom de table sans qualifier son schéma, la requête correspondra à ce nom de table en vérifiant chaque schéma dans l'ordre. Tout comme PATH dans le shell ou include_path en PHP, etc. Vous pouvez vérifier votre chemin de recherche de schéma actuel :

SHOW search_path
  "$user",public

Vous pouvez modifier le chemin de recherche de votre schéma :

SET search_path TO showfinder,public;

Voir aussi http://www.postgresql.org/docs/8.3/static/ddl-schemas.html