J'essaie de me familiariser avec Postgres (9.2) après un peu d'utilisation de MySQL (5.1), depuis que j'ai été mordu par une poignée de MySQL's gotchas. Cependant, dans mes cinq premières minutes avec Postgres je suis tombé sur l'un des its gotchas, que je suis sûr que tout le monde succès:Pourquoi PostgreSQL par défaut tout en minuscules?
- Par défaut, PostgreSQL convertit tout ce qui n'est pas cité en minuscules.
Ce n'est pas trop grand d'un problème pour moi, car il y a deux solutions de contournement évidentes:
- Encapsulate tout entre guillemets.
- Autoriser que tout soit nommé en minuscules.
Mais je me demande pourquoi. Compte tenu de la controverse que j'imagine cette décision de conception provoque, je suis surpris que je ne pouvais pas trouver de justification sur internet. Quelqu'un at-il une explication complète, ou de préférence un lien vers un manifeste de développeur, pour savoir pourquoi Postgres a été conçu de cette façon? Je suis intéressé.
Demandez-vous à ce sujet? http://stackoverflow.com/questions/153944/is-sql-syntax-case-sensitive?rq=1 –
AFAIK, la norme dit que les identificateurs sans guillemets doivent être repliés en majuscules, [PostgreSQL se couche en minuscules] (http : //stackoverflow.com/a/8736088/479863) à la place. Se replier en majuscules ou en minuscules ne devrait pas avoir d'importance à moins que vous n'inscriviez parfois que vos identifiants, mais si vous le faites, vous méritez ce que vous obtenez. Vous êtes invités à 'créer des Pancakes de table (...)' et 'select * from Pancakes', mais ne créez pas de" Pancakes de table "(...)' et essayez de 'sélectionner * from Pancakes'. Les gens de MySQL semblent avoir cette habitude bizarre de faire des backtick - en citant tout, perdre cette habitude. –
@muistooshort J'ai généralement vu des revendications que la spécification SQL ne spécifie pas si le cas-pliage doit être majuscule ou minuscule, seulement que cela doit se produire. Savez-vous où il est spécifié de plier en majuscules spécifiquement? (Je cherche des références mais je ne trouve pas beaucoup de choses utiles pour le moment). –