Heim >Datenbank >MySQL-Tutorial >mysql-Namen-lower_case_table_names
1 Einführung
In MySQL entspricht die Datenbank dem Verzeichnis im Datenverzeichnis. Jede Tabelle in der Datenbank entspricht mindestens einer Datei im Datenbankverzeichnis (möglicherweise mehreren, je nach Speicher-Engine). Daher bestimmt die Groß-/Kleinschreibung des verwendeten Betriebssystems die Groß-/Kleinschreibung von Datenbank- und Tabellennamen.
Bei Datenbanknamen und Tabellennamen wird in den meisten Unix-Systemen die Groß-/Kleinschreibung beachtet, in Windows jedoch nicht. Eine bemerkenswerte Ausnahme ist Mac OS Allerdings unterstützt Mac OS
Die Variable „lower_case_file_system“ gibt an, ob das Dateisystem, in dem sich das Datenverzeichnis befindet, auf die Groß-/Kleinschreibung des Dateinamens achtet. ON gibt an, dass beim Dateinamen die Groß-/Kleinschreibung nicht beachtet wird, OFF gibt an, dass die Groß-/Kleinschreibung beachtet wird.
Zeigen Sie es beispielsweise unter Windows an:
Dies bedeutet, dass das Windows-System die Groß-/Kleinschreibung nicht beachtet und MySQL auch so eingestellt ist, dass die Groß-/Kleinschreibung nicht beachtet wird Standard.
2 Regeln zur Berücksichtigung der Groß- und Kleinschreibung
Unter Linux:
Bei Datenbanknamen und Tabellennamen wird strikt auf Groß- und Kleinschreibung geachtet.
Bei Tabellenaliasen wird strikt auf Groß- und Kleinschreibung geachtet Groß-/Kleinschreibung wird beachtet;
bei Spaltennamen und Spaltenaliasen wird in allen Fällen die Groß-/Kleinschreibung beachtet;
bei beiden wird die Groß-/Kleinschreibung nicht beachtet
Unter Mac Betriebssystem (Nicht-UFS-Volume):
Groß- und Kleinschreibung wird nicht beachtet
3 Parameterbeschreibung (lower_case_table_names) Der Standardwert von Lower_case_table_names unter Unix ist 0. Der Standardwert unter Windows ist 1. Der Standardwert unter Mac OS X ist 2.
Parameterwert td>Speichern Sie den Tabellennamen und den Datenbanknamen auf der Festplatte unter Verwendung der in der CREATE TABLE- oder CREATE DATABASE-Anweisung angegebenen Groß- und Kleinbuchstaben. Bei Namensvergleichen wird die Groß-/Kleinschreibung beachtet. Wir können diesen Parameter auf Betriebssystemen, bei denen die Groß-/Kleinschreibung nicht beachtet wird, wie Windows oder Mac OS, nicht auf 0 setzen. Der Zugriff auf MyISAM-Tabellennamen in Groß- und Kleinschreibung kann zu einer Indexbeschädigung führen. |
|
1 | Tabellennamen werden in Kleinbuchstaben auf der Festplatte gespeichert und bei Namensvergleichen wird die Groß-/Kleinschreibung nicht beachtet. MySQL wandelt alle Tabellennamen in Speicher- und Nachschlagetabellen in Kleinbuchstaben um. Dieses Verhalten gilt auch für Datenbanknamen und Tabellenaliase. Dieser Wert ist der Windows-Standardwert. |
2 | Tabellennamen und Datenbanknamen werden mit den in der CREATE TABLE- oder CREATE DATABASE-Anweisung angegebenen Groß- und Kleinbuchstaben auf der Festplatte gespeichert, aber MySQL wandelt sie in der Nachschlagetabelle in Kleinbuchstaben um. Der Namensvergleich unterscheidet nicht zwischen Groß- und Kleinschreibung, d. h. es wird nach Groß- und Kleinschreibung gespeichert und nach Kleinschreibung verglichen. Hinweis: Gilt nur für Dateisysteme, bei denen die Groß-/Kleinschreibung nicht beachtet wird! InnoDB-Tabellennamen werden in Kleinbuchstaben gespeichert. |
参数值 |
解释 |
0 | 使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名。名称比较对大小写敏感。在大小写不敏感的操作系统如windows或Mac OS x上我们不能将该参数设为0,如果在大小写不敏感的文件系统上将--lowercase-table-names强制设为0,并且使用不同的大小写访问MyISAM表名,可能会导致索引破坏。 |
1 | 表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为Windows的默认值。 |
2 | 表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找表上。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小写不敏感的文件系统上适用! innodb表名用小写保存。 |
4 Konvertierung von der Methode, bei der die Groß- und Kleinschreibung berücksichtigt wird, in eine Methode ohne Berücksichtigung der Groß- und Kleinschreibung Wenn die ursprünglich erstellte Bibliothek Tabellen ist Bei allen wird die Groß-/Kleinschreibung beachtet. Wenn Sie die Groß-/Kleinschreibung nicht berücksichtigen möchten, müssen Sie hauptsächlich die folgenden drei Schritte ausführen: 1. Exportieren Sie die Datenbankdaten über mysqldump.
2. Ändern Sie Lower_case_tables_name = 1 in my.cnf und starten Sie die MySQL-Datenbank neu.
3. Importieren Sie die exportierten Daten in die MySQL-Datenbank.
5 Hinweise Um Probleme durch die Groß-/Kleinschreibung zu vermeiden, wird folgende Benennungsregel empfohlen: Beim Definieren von Datenbanken, Tabellen und Spalten ausschließlich Kleinbuchstaben und Unterstreichungen, keine Großbuchstaben verwenden Sie können den Namen „lower_case_tables_name=1“ in jedem System verwenden. Der Nachteil dieser Option besteht darin, dass bei Verwendung von SHOW TABLES oder SHOW DATABASES nicht erkennbar ist, ob der Name ursprünglich in Groß- oder Kleinschreibung geschrieben wurde.
Bitte beachten Sie, dass unter Unix, wenn Lower_case_tables_name = 0 ist, bevor Lower_case_tables_name auf 1 gesetzt wird, der alte Datenbankname und der Tabellenname vor dem Neustart von mysqld in Kleinbuchstaben umgewandelt werden müssen.
Fügen Sie Lower_case_table_names = 0 zu my.ini in MySQL hinzu, um das _MySQL der Tabelle zu erstellen
Das obige ist der detaillierte Inhalt vonmysql-Namen-lower_case_table_names. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!