sql >> Database >  >> RDS >> Mysql

Hoe verander ik MySQL-tabelnamen op de Linux-server zodat ze niet hoofdlettergevoelig zijn?

De hoofdlettergevoeligheid van MySQL wordt standaard afgehandeld door het bestandssysteem, daarom heb je dit verschil gevonden:

9.2.2. Identificatie Hoofdlettergevoeligheid

In MySQL komen databases overeen met mappen in de gegevensmap. Elke tabel in een database komt overeen met ten minste één bestand in de databasedirectory (en mogelijk meer, afhankelijk van de opslagengine). Bijgevolg speelt de hoofdlettergevoeligheid van het onderliggende besturingssysteem een ​​rol bij de hoofdlettergevoeligheid van database- en tabelnamen. Dit betekent dat database- en tabelnamen niet hoofdlettergevoelig zijn in Windows en hoofdlettergevoelig in de meeste varianten van Unix. Een opmerkelijke uitzondering is Mac OS X, dat op Unix is ​​gebaseerd maar een standaard bestandssysteemtype (HFS+) gebruikt dat niet hoofdlettergevoelig is. Mac OS X ondersteunt echter ook UFS-volumes, die net als op elke Unix hoofdlettergevoelig zijn. Zie Paragraaf 1.8.4, “MySQL-uitbreidingen naar standaard SQL”.

Gelukkig kan de volgende zin je helpen:

De lower_case_table_names systeemvariabele is ook van invloed op hoe de server omgaat met hoofdlettergevoeligheid van de ID, zoals verderop in deze sectie wordt beschreven.

De lower_case_table_names blurb:

Indien ingesteld op 0, worden tabelnamen opgeslagen zoals gespecificeerd en zijn vergelijkingen hoofdlettergevoelig. Indien ingesteld op 1, worden tabelnamen in kleine letters op schijf opgeslagen en zijn vergelijkingen niet hoofdlettergevoelig. Indien ingesteld op 2, worden tabelnamen opgeslagen zoals opgegeven, maar vergeleken in kleine letters. Deze optie is ook van toepassing op databasenamen en tabelaliassen. Voor aanvullende informatie, zie Paragraaf 9.2.2, “Gevoeligheid van hoofdletters van identificatie”.

Stel deze variabele niet in op 0 als u MySQL gebruikt op een systeem met niet-hoofdlettergevoelige bestandsnamen (zoals Windows of Mac OS X). Als u deze variabele op een dergelijk systeem instelt op 0 en MyISAM-tabelnamen opent met verschillende hoofdletters, kan dit leiden tot beschadiging van de index. In Windows is de standaardwaarde 1. In Mac OS X is de standaardwaarde 2.

Het lijkt er dus op dat u lower_case_table_names . moet instellen naar 1 in het MySQL-configuratiebestand.



  1. Hoe MySQL Query Cache in te schakelen

  2. Vergelijk DATETIME en DATE en negeer het tijdsgedeelte

  3. Tools om in teamverband te werken met opgeslagen procedures in Oracle?

  4. Hoe MySQL-processen te tonen