Maison > base de données > tutoriel mysql > Pourquoi ma requête PostgreSQL échoue-t-elle avec « La relation n'existe pas » même si la table existe ?

Pourquoi ma requête PostgreSQL échoue-t-elle avec « La relation n'existe pas » même si la table existe ?

Susan Sarandon
Libérer: 2025-01-20 13:41:09
original
829 Les gens l'ont consulté

Why Does My PostgreSQL Query Fail with

Échec de la requête PostgreSQL : erreur « La relation n'existe pas »

Problème

L'exécution d'une requête de base de données entraîne une erreur « la relation n'existe pas », même lorsque le nom de la table semble correct.

Solution

Cette erreur indique généralement un problème avec la façon dont vous faites référence au nom de la table. La cause la plus fréquente est un problème de sensibilité à la casse. PostgreSQL est sensible à la casse en ce qui concerne les noms de tables.

Par exemple, cette requête échouera :

<code class="language-sql">CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!</code>
Copier après la connexion

La solution consiste à faire correspondre précisément la casse du nom de votre table, en utilisant des guillemets :

<code class="language-sql">SELECT * FROM "SF_Bands";</code>
Copier après la connexion

Utilisation du chemin de recherche de schéma

Une autre approche consiste à modifier votre search_path. Ce paramètre dicte l'ordre dans lequel PostgreSQL recherche les objets (comme les tables) dans votre base de données. L'ajout du schéma de la table au chemin de recherche vous permet de référencer la table sans indiquer explicitement le schéma.

Pour vérifier votre chemin de recherche actuel :

<code class="language-sql">SHOW search_path;</code>
Copier après la connexion

Pour ajouter le schéma showfinder (remplacez par votre schéma actuel) :

<code class="language-sql">SET search_path TO showfinder,public;</code>
Copier après la connexion

Après avoir ajusté le chemin de recherche, vous pouvez interroger la table en utilisant le nom en minuscule :

<code class="language-sql">SELECT * FROM sf_bands;</code>
Copier après la connexion

Pour des détails complets sur la configuration search_path, consultez la documentation officielle de PostgreSQL : https://www.php.cn/link/d7323519970d0e3680ef5fa1edfe0e56

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal