Maison > développement back-end > tutoriel php > PostgreSQL « La relation n'existe pas » : pourquoi ma requête échoue-t-elle et comment puis-je y remédier ?

PostgreSQL « La relation n'existe pas » : pourquoi ma requête échoue-t-elle et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2024-12-16 20:46:17
original
795 Les gens l'ont consulté

PostgreSQL

Échec de la requête PostgreSQL : "La relation n'existe pas"

Lorsque vous tentez d'exécuter une requête SQL, vous pouvez rencontrer l'erreur "relation ' relation_name' n'existe pas." Cette erreur indique que PostgreSQL ne peut pas localiser la relation spécifiée, généralement une table ou une vue, dans la base de données actuelle.

Cause du problème

L'une des raisons courantes de cette erreur fait référence au nom de la relation en utilisant une casse incorrecte. Si le nom de la relation contient une casse mixte, telle que « SF_Bands », alors que la requête utilise une casse « sf_bands » minuscule, la requête échouera. PostgreSQL est sensible à la casse dans sa gestion des identifiants, la casse mixte doit donc être préservée.

Solution 1 : Utiliser des guillemets doubles dans les identifiants

Pour référencer correctement une relation avec casse mixte, utilisez des guillemets doubles ("") pour délimiter l'identifiant. Par exemple :

SELECT * FROM "SF_Bands" LIMIT 10;
Copier après la connexion

Solution 2 : Définir le chemin de recherche du schéma

Si la relation appartient à un schéma autre que celui par défaut, vous pouvez ajuster le chemin de recherche du schéma pour inclure le schéma pertinent. Le chemin de recherche définit l'ordre dans lequel PostgreSQL recherche. schémas lors de la résolution des noms de relation.

Pour ajouter un schéma au chemin de recherche, exécutez ce qui suit command :

SET search_path TO <schema_name>,public;
Copier après la connexion

Dans ce cas, remplacez par le nom du schéma contenant la relation.

Exemple

Pour une relation nommée "sf_bands" dans un schéma nommé "showfinder", vous pouvez ajuster le chemin de recherche et modifier la requête comme suit :

SET search_path TO showfinder,public;

SELECT * FROM sf_bands LIMIT 10;
Copier après la connexion

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