Maison >base de données >tutoriel mysql >Pourquoi ma requête SQL échoue-t-elle en raison de noms de colonnes sensibles à la casse dans PostgreSQL ?

Pourquoi ma requête SQL échoue-t-elle en raison de noms de colonnes sensibles à la casse dans PostgreSQL ?

DDD
DDDoriginal
2025-01-13 06:54:44948parcourir

Why Does My SQL Query Fail Due to Case-Sensitive Column Names in PostgreSQL?

Sensibilité à la casse des noms de colonnes dans SQL

L'instruction SQL suivante provoque une erreur en raison d'une incompatibilité de casse dans le nom de la colonne.

Le message d'erreur "la colonne "FK_Numbers_id" n'existe pas" indique que PostgreSQL ne peut pas trouver la colonne spécifiée dans la table. Cependant, après vérification du schéma de la table, la colonne existe, mais avec un nom légèrement différent.

Dans PostgreSQL, les noms de colonnes sont sensibles à la casse. Cela signifie que « FK_Numbers_id » et « fk_numbers_id » sont traités comme des colonnes différentes. Cependant, le schéma de la table montre que la colonne existe et est nommée « FK_Numbers_id ».

Par conséquent, l'instruction SQL correcte doit être :

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>

L'instruction SQL fait explicitement référence aux noms de colonnes sensibles à la casse dans le schéma de la table en mettant les noms de colonnes entre guillemets doubles. Cela résout l’erreur et permet à la requête de s’exécuter correctement.

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:
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