79 votes

Le champ et le nom de la table sont-ils sensibles à la casse dans MySQL?

Si j'ai des noms de champ appelés category_id et Category_Id, sont-ils différents?

Et si j'ai un nom de table appelé catégorie et catégorie, sont-ils différents?

94voto

Seva Alekseyev Points 31812

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 envisagez de déployer sur une machine Linux, mieux tester votre SQL contre un MySQL basé sur Linux, ou soyez 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.

31voto

Anitha.y Points 1

de Documentation de Mysql :

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

  • La colonne et les noms d'index ne sont pas sensibles à la casse sur toute plate-forme, ni les alias de colonne.

Consultez l'URL pour plus d'informations: http://dev.mysql.com/doc/refman/4.1/en/identifier-case-sensitivity.html

5voto

Pekka 웃 Points 249607

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

3voto

Vincent Ramdhanie Points 46265

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.

-5voto

alemjerus Points 3729

Non, les noms de table et de ligne ne sont pas sensibles à la casse, et même les instructions SQL ne le sont pas. Donc, les noms que vous avez donnés comme exemple sont identiques
Modifier: cela dépend du classement du serveur. Vous devez donc vérifier les paramètres. Pas lié au système d'exploitation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X