Maison >base de données >tutoriel mysql >Pourquoi ma requête PostgreSQL renvoie-t-elle « La colonne n'existe pas » même si la colonne existe ?
Solution d'erreur PostgreSQL « la colonne n'existe pas »
Une application Java a rencontré une erreur déroutante : "La colonne 'continent' n'existe pas" lors de l'exécution d'une requête PostgreSQL, même si la colonne existait dans la base de données. Quel est le coupable ? La réponse est : il manque des guillemets autour des noms de colonnes.
Voici la requête à l'origine du problème :
<code class="language-sql">SELECT Continent FROM network.countries</code>
Dans cette requête, la colonne "Continent" n'est pas placée entre guillemets, ce qui provoque une confusion chez PostgreSQL. Pour résoudre ce problème, placez simplement le nom de la colonne entre guillemets :
<code class="language-sql">SELECT "Continent" FROM network.countries</code>
En ajoutant des guillemets doubles, la base de données peut identifier avec précision la colonne « Continent » et exécuter la requête avec succès. En effet, dans PostgreSQL, des guillemets doubles sont utilisés pour séparer les identifiants (tels que les noms de colonnes). Sans guillemets doubles, la base de données peut interpréter le nom de la colonne comme faisant partie d'une expression ou d'un objet différent, provoquant une erreur.
Il est important de noter que ce problème peut également survenir avec les noms de tables et autres identifiants. Les guillemets doubles garantissent que la base de données interprète avec précision la cible de la requête.
N'oubliez pas non plus que si un nom de colonne ou de table contient des espaces ou des caractères spéciaux, il doit également être placé entre guillemets doubles. Cette pratique garantit que PostgreSQL gère correctement les identifiants et évite toute 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!