Heim  >  Artikel  >  Datenbank  >  mysql-Namen-lower_case_table_names

mysql-Namen-lower_case_table_names

韦小宝
韦小宝Original
2018-02-08 09:54:491401Durchsuche

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:

mysql-Namen-lower_case_table_names

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.

Verwandte Empfehlungen:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn