Vous n'êtes pas identifié(e).

#1 22/07/2018 18:34:55

databaser
Membre

Comportement nom colonne non réservé mot-clé SQL

Bonjour,

Avec pgAdmin4, j'ai un souci avec le nom de colonne ID.
Or, SELECT DISTINCT contenant ID a plusieurs comportements :
* ID tout court, la requête fonctionne. Néanmoins, le mot s'inscrit en lettres violet. -> Pourquoi est-ce en lettres bleues alors ce n'est pas un mot réservé selon l'annexe C "Mot-clé SQL" de la doc PGS10 ?
* 'ID' avec des quotes, le mot devient marron (comme les commentaires). La requête tourne sans arrêt. Si je stoppe, j'obtiens une colonne dans les résultats intitulée " ?column? " et les cellules remplies par des ID, ID, ID, ...
* entre "", "ID" (pour utiliser un mot réservé comme nom de colonne), le mot redevient noir. Mais la requête s'affiche comme erronée "la colonne ID n'existe pas", SQL state: 42703
Character: 37.
* si dans le SELECT j'indique NomTable.ID (sans quotes ou ""), la partie ID devient bleue et le reste noir.

Quésako ? sad Quelle présentation dois-je utiliser pour citer le nom de la colonne ? Merci smile

Dernière modification par databaser (22/07/2018 18:36:50)

Hors ligne

#2 23/07/2018 09:26:43

gleu
Administrateur

Re : Comportement nom colonne non réservé mot-clé SQL

Concernant les couleurs, je ne saurais pas vous répondre.

Si la requête est très longue avec ID entre simple guillemets, c'est tout simplement parce que vous indiquez la chaîne ID et non pas la colonne ID. D'où aussi le fait que vous obtenez que la chaîne ID sur chaque ligne. Pour l'erreur de colonne inexistante, en utilisant les guillemets doubles, vous forcez PostgreSQL à respecter la casse, donc vous lui demandez de trouver une colonne ID qui n'existe pas (le nom doit être id, ou Id ou encore iD)


Guillaume.

Hors ligne

Pied de page des forums