Maison > base de données > tutoriel mysql > Pourquoi ma requête PostgreSQL génère-t-elle une erreur « La colonne n'existe pas » même si la colonne existe ?

Pourquoi ma requête PostgreSQL génère-t-elle une erreur « La colonne n'existe pas » même si la colonne existe ?

Patricia Arquette
Libérer: 2025-01-20 19:51:14
original
731 Les gens l'ont consulté

Why Does My PostgreSQL Query Throw a

Erreur « la colonne n'existe pas » de PostgreSQL : un problème de sensibilité à la casse

Un casse-tête courant chez PostgreSQL est l'erreur « la colonne n'existe pas », même lorsque la colonne est clairement définie. Cela vient souvent de problèmes de sensibilité à la casse. Prenons cet exemple :

SELECT Continent
FROM network.countries
WHERE Continent IS NOT NULL
AND Continent <> ''
LIMIT 5
Copier après la connexion

Cette requête apparemment correcte pourrait renvoyer :

<code>ERROR: column "continent" does not exist
Hint: Perhaps you meant to reference the column "countries.Continent".
Position: 8</code>
Copier après la connexion

La solution : dénomination précise des colonnes avec des guillemets doubles

Le correctif est simple : placez le nom de la colonne entre guillemets :

SELECT "Continent"
FROM network.countries
WHERE "Continent" IS NOT NULL
AND "Continent" <> ''
LIMIT 5
Copier après la connexion

En citant "Continent", vous indiquez explicitement à PostgreSQL de traiter le nom comme une chaîne littérale sensible à la casse, évitant ainsi les mauvaises interprétations.

Pourquoi les doubles citations sont importantes

PostgreSQL gère généralement les noms de colonnes sans tenir compte de la casse. Cependant, les noms de colonnes sans guillemets sont souvent convertis en minuscules en interne. Si le nom de votre colonne est en casse mixte (comme « Continent ») et que vous le référencez sans guillemets, PostgreSQL peut rechercher une colonne « continent » en minuscules, conduisant à l'erreur. Les guillemets doubles garantissent une correspondance exacte, résolvant ainsi l'ambiguïté.

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!

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