É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;
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;
Dans ce cas, remplacez
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;
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!