Heim >Datenbank >MySQL-Tutorial >So stellen Sie die Groß-/Kleinschreibung in MySQL ein
So stellen Sie die Groß-/Kleinschreibung in MySQL ein: 1. Öffnen und bearbeiten Sie die Datei „my.cnf“. 2. Suchen Sie das Element „lower_case_table_names“ und setzen Sie den Wert des Elements auf „1“.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, MySQL8-Version, Dell G3-Computer.
1. Prinzipien und Parameter
Die MySQL-Groß-/Kleinschreibungskonfiguration hängt mit zwei Parametern zusammen: lower_case_file_system und Lower_case_table_names die aktuelle Systemdatei Ob die Groß-/Kleinschreibung beachtet wird (EIN bedeutet nicht beachtet, AUS bedeutet beachtet), schreibgeschützte Parameter und können nicht geändert werden.
lower_case_table_names: Gibt an, ob beim Tabellennamen die Groß-/Kleinschreibung beachtet wird und geändert werden kann.
konvertiert MySQL beim Erstellen der Tabelle zunächst den Tabellennamen in Großbuchstaben und wird nach dem Festlegen der Groß-/Kleinschreibung nicht gefunden. Es fühlt sich an, als würde Oracle eine Tabelle erstellen und „test“ zum Erstellen einer Tabelle schreiben und dann „select * from test“ verwenden, um sie zu finden, da Oracle „test“ automatisch in Großbuchstaben umwandelt.
show global variables like '%case%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | ON | | lower_case_table_names | 0 | +------------------------+-------+
vi my.cnf-Datei, setze Lower_case_table_names = 1,
Es wird nach dem Neustart von MySQL wirksamlower_case_table_names = 1
DELIMITER // DROP PROCEDURE IF EXISTS lowercase // CREATE PROCEDURE lowercase(IN dbname VARCHAR(200)) BEGIN DECLARE done INT DEFAULT 0; DECLARE oldname VARCHAR(200); DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur; REPEAT FETCH cur INTO oldname; SET @newname = LOWER(oldname); #IF newname equals to oldname, do nothing; #select 'a' <> 'A'; -> 0 #select 'a' <> BINARY 'A'; -> 1 SET @isNotSame = @newname <> BINARY oldname; IF NOT done && @isNotSame THEN SET @SQL = CONCAT('rename table ',oldname,' to ',@newname); PREPARE tmpstmt FROM @SQL; EXECUTE tmpstmt; DEALLOCATE PREPARE tmpstmt; END IF; UNTIL done END REPEAT; CLOSE cur; END // DELIMITER ; #调用存储过程 #call lowercase('TEST'); #TEST为你想要修改的数据库的名称[Verwandte Empfehlungen:
MySQL-Video-Tutorial
]Das obige ist der detaillierte Inhalt vonSo stellen Sie die Groß-/Kleinschreibung in MySQL ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!