Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie ändere ich MySQL-Tabellennamen auf dem Linux-Server so, dass die Groß-/Kleinschreibung nicht beachtet wird?

Die Groß-/Kleinschreibung von MySQL wird standardmäßig vom Dateisystem gehandhabt, weshalb Sie diesen Unterschied gefunden haben:

9.2.2. Identifikator-Groß-/Kleinschreibung

In MySQL entsprechen Datenbanken Verzeichnissen innerhalb des Datenverzeichnisses. Jede Tabelle in einer Datenbank entspricht mindestens einer Datei im Datenbankverzeichnis (und möglicherweise mehr, je nach Speicher-Engine). Folglich spielt die Groß-/Kleinschreibung des zugrunde liegenden Betriebssystems eine Rolle bei der Groß-/Kleinschreibung von Datenbank- und Tabellennamen. Das bedeutet, dass Datenbank- und Tabellennamen in Windows nicht zwischen Groß- und Kleinschreibung unterscheiden und in den meisten Varianten von Unix zwischen Groß- und Kleinschreibung unterscheiden. Eine bemerkenswerte Ausnahme ist Mac OS X, das auf Unix basiert, aber einen Standarddateisystemtyp (HFS+) verwendet, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Mac OS X unterstützt jedoch auch UFS-Volumes, bei denen die Groß- und Kleinschreibung wie bei jedem Unix beachtet wird. Siehe Abschnitt 1.8.4, „MySQL-Erweiterungen zu Standard-SQL“.

Glücklicherweise könnte Ihnen der nächste Satz helfen:

Die kleingeschriebene_Tabellennamen Die Systemvariable wirkt sich auch darauf aus, wie der Server die Groß-/Kleinschreibung von Kennungen handhabt, wie weiter unten in diesem Abschnitt beschrieben wird.

Die lower_case_table_names Klappentext:

Wenn der Wert auf 0 gesetzt ist, werden Tabellennamen wie angegeben gespeichert und bei Vergleichen wird zwischen Groß- und Kleinschreibung unterschieden. Wenn der Wert 1 ist, werden Tabellennamen in Kleinbuchstaben auf der Festplatte gespeichert, und bei Vergleichen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Wenn auf 2 gesetzt, werden Tabellennamen wie angegeben gespeichert, aber in Kleinbuchstaben verglichen. Diese Option gilt auch für Datenbanknamen und Tabellenaliase. Weitere Informationen finden Sie in Abschnitt 9.2.2, „Groß- und Kleinschreibung von Kennungen“.

Sie sollten diese Variable nicht auf 0 setzen, wenn Sie MySQL auf einem System ausführen, bei dem die Groß- und Kleinschreibung bei Dateinamen nicht beachtet wird (wie Windows oder Mac OS X). Wenn Sie diese Variable auf einem solchen System auf 0 setzen und auf MyISAM-Tabellennamen mit unterschiedlicher Schreibweise zugreifen, kann dies zu Indexbeschädigungen führen. Unter Windows ist der Standardwert 1. Unter Mac OS X ist der Standardwert 2.

Es scheint also, dass Sie lower_case_table_names festlegen sollten zu 1 in der MySQL-Konfigurationsdatei.