Maison >base de données >tutoriel mysql >Pourquoi mes noms de tables MySQL sont-ils sensibles à la casse sur un système mais pas sur un autre ?

Pourquoi mes noms de tables MySQL sont-ils sensibles à la casse sur un système mais pas sur un autre ?

DDD
DDDoriginal
2024-12-24 05:27:14211parcourir

Why Are My MySQL Table Names Case-Sensitive on One System But Not Another?

Sensibilité à la casse des noms de table MySQL

Cette question a été soulevée par un développeur qui avait une casse de nom de table différente sur deux environnements différents. Sur leur machine de développement Windows, tous les tableaux étaient en minuscules, tandis que sur le serveur de test Ubuntu, les noms de tables apparaissaient avec une lettre de début en majuscule.

Dans la plupart des cas, la différence de sensibilité à la casse est due au système d'exploitation, et non MySQL lui-même.

Rôle du système d'exploitation :

En général, les noms de bases de données et de tables ne sont pas sensibles à la casse dans Windows, mais le sont sensible à la casse dans la plupart des versions d'Unix. Dans MySQL, les bases de données correspondent aux répertoires du répertoire de données et les tables d'une base de données correspondent aux fichiers du répertoire de la base de données. Ainsi, la sensibilité à la casse du système d'exploitation sous-jacent affecte la sensibilité à la casse des noms de base de données et de table.

Option de configuration :

MySQL fournit une option de configuration, lower_case_table_names, qui vous permet de contrôler la façon dont les noms de tables sont stockés sur le disque. Cette option peut être définie sur :

  • 0 (par défaut) : Les noms de table sont stockés dans la casse spécifiée dans l'instruction CREATE TABLE.
  • 1 : Les noms de tables sont convertis en minuscules sur le disque.
  • 2 : Les noms de tables sont converti en majuscules sur le disque.

En définissant lower_case_table_names de manière appropriée, vous pouvez contrôler la sensibilité à la casse des noms de table quel que soit le système d'exploitation. Pour plus de détails, reportez-vous à la documentation MySQL sur [Identifier Case Sensitivity](https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn