web-dev-qa-db-fra.com

Les tables Postgresql existent, mais la requête "relation n'existe pas" lors de l'interrogation

J'ai une base de données postgresql avec un certain nombre de tables. Si j'interroge:

SELECT column_name
FROM information_schema.columns
WHERE table_name="my_table";

Je vais obtenir une liste des colonnes retournées correctement.

Cependant, quand j'interroge:

SELECT *
FROM "my_table";

Je reçois l'erreur:

(ProgrammingError) relation "my_table" does not exist
'SELECT *\n    FROM "my_table"\n' {}

Avez-vous des idées sur les raisons pour lesquelles je peux obtenir les colonnes, mais ne peut pas interroger la table? L'objectif est de pouvoir interroger la table.

51
patkil

Vous devez inclure le schéma si ce n'est pas un public

SELECT *
FROM <schema>."my_table"

Ou vous pouvez changer votre schéma par défaut

SHOW search_path;
SET search_path TO my_schema;

Vérifiez votre schéma de table ici

SELECT *
FROM information_schema.columns

enter image description here

Par exemple, si une table est sur le schéma par défaut public les deux, cela fonctionnera bien

SELECT * FROM parroquias_region
SELECT * FROM public.parroquias_region

Mais les secteurs doivent spécifier le schéma

SELECT * FROM map_update.sectores_point
53

Tu peux essayer:

SELECT * 
FROM public."my_table"

N'oubliez pas les guillemets près de my_table.

1
Richie Rizal Amir