Les noms de colonne et de table sont-ils sensibles à la casse dans MySQL?

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?

Sur Unix, les noms de table sont sensibles à la casse. Sous Windows, ils ne le sont pas. Fun, n’est ce pas? 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, testez mieux votre SQL avec une firebase database MySQL basée sur Linux, ou préparez-vous à de mystérieuses erreurs de “table introuvable” au moment du lancement. Les machines virtuelles sont bon marché ces jours-ci.

Les noms de champs sont insensibles à la casse.

EDIT: nous parlons du système d’exploitation sur le serveur MySQL, pas du client.

De la documentation MySQL:

Les noms de bases de données et de tables ne sont pas sensibles à la casse sous Windows et sont sensibles à la casse dans la plupart des variétés d’Unix. Une exception notable est Mac OS X, basé sur Unix mais utilisant un type de système de fichiers par défaut (HFS +) qui n’est pas sensible à la casse.

et

Les noms de colonne et d’index ne sont pas sensibles à la casse sur aucune plate-forme, pas plus que les alias de colonne.

Pour les noms de firebase database et de table, cela dépend du système d’exploitation sous-jacent. Voir 8.2.2. Identifiant de la casse

Vous pourriez trouver cela 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 être sensible à la casse dans MySQL Workbench, même sous 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 en minuscule), le résultat était donc en lecture seule. L’exécution de la même requête avec la clé primaire en casse (ID au lieu de l’ID) nous permettrait de modifier les résultats comme prévu.