Si j'ai un nom de colonne appelé category_id
et Category_Id
, sont-ils différents?
Et si j'ai une table appelée category
et Category
, sont-ils différents?
Sous Unix, les noms de table sont sensibles à la casse. Sous Windows, ce n'est pas le cas. Amusant, non? Un peu comme leurs systèmes de fichiers respectifs. Pensez-vous que c'est une coïncidence?
En d'autres termes, si vous prévoyez de déployer sur une machine Linux, mieux tester votre SQL contre un MySQL basé sur Linux, ou être prêt à de mystérieuses erreurs "table introuvable" au moment de la production. Les VM sont bon marché de nos jours.
Les noms de champ ne respectent pas la casse.
EDIT: nous parlons du système d'exploitation sur la machine MySQL serveur, pas client.
Depuis MySQL documentation :
les noms de base de données et de table ne sont pas sensibles à la casse dans Windows et sensibles à la casse dans la plupart des variétés d'Unix. Une exception notable est Mac OS X, qui est basé sur Unix mais utilise un type de système de fichiers par défaut (HFS +) qui ne respecte pas la casse.
et
Les noms de colonnes et d'index ne sont sensibles à la casse sur aucune plateforme, pas plus que les alias de colonnes.
Pour les noms de base de données et de table, cela dépend du système d'exploitation sous-jacent. Voir 8.2.2. Sensibilité à la casse de l'identifiant
Vous pourriez trouver this nécessaire à lire. Il est possible de définir la sensibilité à la casse dans MySQL mais ce n'est vraiment un problème que lorsque vous travaillez dans plusieurs environnements.
Curieusement, il semble pour être sensible à la casse dans MySQL Workbench même sur Windows.
Nous avons juste essayé de modifier les résultats d'une instruction SELECT, mais le Workbench ne nous a pas laissé faire, se plaignant que notre requête n'incluait pas la clé primaire de la table (ce qu'elle a fait mais en minuscules), le résultat était donc en lecture seule. L'exécution de la même requête avec la clé primaire dans le cas approprié (ID au lieu d'ID) nous permettrait de modifier les résultats comme prévu.