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

MySQL Sortierung aller Tabellen ändern

Verschiedene Datenbanksortierungen ermöglichen es Ihnen, verschiedene Arten von Zeichen in einer Datenbank zu speichern. Standardmäßig hat MySQL den Zeichensatz latin1 mit der Sortierung latin1_swedish_ci. Sie können jedoch ganz einfach die MySQL-Sortierung bestimmter Tabellen, aller Tabellen oder sogar einer ganzen Datenbank ändern. So ändern Sie die Sortierung in MySQL.


So ändern Sie die Sortierung aller Tabellen in MySQL

Wir werden uns die Schritte zum Ändern der Sortierung in MySQL ansehen.


Hier ist die SQL-Abfrage, um die Sortierung einer MySQL-Tabelle zu ändern

ALTER TABLE tbl_name 
[[DEFAULT] CHARACTER SET charset_name] 
[COLLATE collation_name]

In der obigen Abfrage müssen Sie den Tabellennamen tbl_name angeben . Optional können Sie auch den Zeichensatz charset_name angeben und Sortierung sortierungsname .

Bonus-Lesung:Top-Datenbank-Blogs, denen Sie folgen sollten

Hier ist ein Beispiel, um die Sortierung aller Tabellen einer Datenbank auf utf8_general_ci zu ändern. Ersetzen Sie Datenbankname und Tabellenname unten mit Datenbank- bzw. Feldnamen.

alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Wenn Sie die Sortierung aller Tabellen in Ihrer Datenbank ändern möchten, müssen Sie die obige Abfrage für jede Tabelle separat ausführen.

Da dies sehr mühsam sein kann, erstellen wir eine SELECT-Abfrage, die die ALTER-Tabellenanweisungen für jede Tabelle in unserer Datenbank generiert. Hier ist zunächst die SELECT-Abfrage, die alle tabellenbezogenen Details in Ihrer Datenbank zurückgibt.

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="database_name" 
AND TABLE_TYPE="BASE TABLE";

Bonuslektüre:Die besten MySQL-Workbench-Alternativen

Wir modifizieren die obige SELECT-Abfrage, um eine ALTER TABLE-Anweisung für jede Tabelle in Ihrer Datenbank zu erstellen.

Hier ist die ausgewählte Abfrage, die SQL-Abfragen für alle Tabellen in Ihrer Datenbank generiert. Ersetzen Sie Datenbankname und sortierungsname Geben Sie unten Ihre Datenbank- und Sortierungsnamen ein und führen Sie es aus, um SQL-Abfragen zu generieren, um die Sortierung aller Tabellen in Ihrer Datenbank zu ändern.

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE collation_name;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="database_name" AND TABLE_TYPE="BASE TABLE";

Bonuslektüre:So aktivieren Sie das langsame Abfrageprotokoll in MySQL

Hier ist eine weitere SQL-Abfrage, um die Sortierung aller Tabellen in utf8 zu ändern.

SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES
 tbl WHERE tbl.TABLE_SCHEMA = 'database_name'

Sobald Sie die Liste der ALTER TABLE-Abfragen für jede Tabelle haben, können Sie sie kopieren, einfügen und ausführen, um die Sortierung aller Tabellen zu ändern.

Hoffentlich hilft Ihnen der obige Artikel, die Sortierung aller Tabellen in der Datenbank in MySQL zu ändern.