Bonjour,
Lorsque j'exécute une requete, les champs doivent être entouré par des doubles cotes. "Table"."MonChamps"
Est on réellement obligé à les utiliser ou pas? Car dans les tutos ils ne sont pas utilisées.
Merci
Bonjour,
Lorsque j'exécute une requete, les champs doivent être entouré par des doubles cotes. "Table"."MonChamps"
Est on réellement obligé à les utiliser ou pas? Car dans les tutos ils ne sont pas utilisées.
Merci
Absolument pas. Lisez mon cours en ligne ou mon bouquin :
http://sqlpro.developpez.com/cours/s...age=partie1#L1
"un nom d'objet ne peut pas être un mot réservé de SQL sauf à être utilisé avec des guillemets"*
par exemple si par masochisme vous nommez une table SELECT ou WHERE !
Ou plus subtilement si vous nommez une colonne DATE ou TYPE....
A +
C'est bien ce que je pensais, merci de ta réponse.
J'ai donc un souci avec soit pgAdmin , soit avec postgres car lorsque j'effectue une recherche de base du style :
SELECT * FROM MATABLE;
Il me met une erreur en me signalant que la relation <matable> n'existe pas.
Or la table se nomme bien en Majuscule MATABLE
Par contre si je met des doubles quotes, là ça fonctionne.
Une petite idée d'où cela peut provenir?
Oui, PostGreSQL ne respecte pas la norme SQL et se rend parfois sensible à la casse.
En fait bien que vous l'ayez spécifiée en majuscule, il y a fort à parier qu'il l'ai créé en minuscule.
Essayez donc
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM matable;
Le problème remonte à la création de la table.
Au lieu la créer comme ça:
elle a été créée comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE TABLE MATABLE (...
(possiblement par pgadmin qui ajoute des guillemets en croyant bien faire).
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE TABLE "MATABLE" (...
Or l'emploi des guillemets à la création implique qu'ils devront être utilisés systématiquement par la suite.
Pour revenir à une situation saine, faire:
La règle est simple: entre guillemets, un identifiant reste tel quel. Sans les guillemets, un identifiant est implicitement converti en minuscules.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE "MATABLE" RENAME TO matable;
Merci à vous, ça fonctionne.
En effet Estofilo, c'était bien ça. Il va falloir que je fasse attention à ça, j'ai quand même perdu pas mal de temps sur ce petit problème.
Heureusement qu'il existe de supers forums et des cracks comme vous![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager