sql >> Database >  >> RDS >> Mysql

MySQL Sortering van alle tabellen wijzigen

Met verschillende database-sorteringen kunt u verschillende soorten tekens in een database opslaan. Standaard heeft MySQL een latin1-tekenset met latin1_swedish_ci-sortering. U kunt echter eenvoudig MySQL-sortering van specifieke tabellen, alle tabellen of zelfs een hele database wijzigen. Hier leest u hoe u de sortering in MySQL kunt wijzigen.


De sortering van alle tabellen in MySQL wijzigen

We zullen de stappen bekijken om de sortering in MySQL te wijzigen.


Hier is de SQL-query om de sortering van één MySQL-tabel te wijzigen

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

In de bovenstaande query moet u de tabelnaam tbl_name opgeven . U kunt optioneel ook de tekenset charset_name specificeren en collatie collation_name .

Bonus Lezen:Top Database-blogs om te volgen

Hier is een voorbeeld om de sortering van alle tabellen van een database te wijzigen in utf8_general_ci. Vervang database_name en tabelnaam hieronder met respectievelijk database- en veldnamen.

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

Als u de sortering van alle tabellen in uw database wilt wijzigen, moet u de bovenstaande query voor elke tabel afzonderlijk uitvoeren.

Omdat dit erg vervelend kan zijn, maken we een SELECT-query die de ALTER-tabelinstructies genereert voor elke tabel in onze database. Ten eerste is hier de SELECT-query die alle tabelgerelateerde details in uw database retourneert.

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

Bonus Lezen:Top MySQL Workbench-alternatieven

We passen de bovenstaande SELECT-query aan om een ​​ALTER TABLE-instructie te maken voor elke tabel in uw database.

Dit is de selectiequery die SQL-query's genereert voor alle tabellen in uw database. Vervang database_name en collatienaam hieronder met uw database en sorteernamen en voer het uit om SQL-query's te genereren om de sortering van alle tabellen in uw database te wijzigen.

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";

Bonus Lezen :Langzame Query Log in MySQL inschakelen

Hier is nog een SQL-query om de sortering van alle tabellen te wijzigen in utf8.

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'

Zodra u de lijst met ALTER TABLE-query's voor elke tabel hebt, kunt u ze kopiëren en plakken en uitvoeren om de sortering van alle tabellen te wijzigen.

Hopelijk helpt het bovenstaande artikel u bij het wijzigen van de sortering van alle tabellen in de database in MySQL.

  1. Hoe SQL Server-database exporteren naar MySQL?

  2. mysql -> invoegen in tbl (selecteer uit een andere tabel) en enkele standaardwaarden

  3. MySQL's ORDER BY FIELD() simuleren in Postgresql

  4. PL/SQL Strong-referentiecursor met door de gebruiker gedefinieerd recordgegevenstype