sql >> Database teknologi >  >> RDS >> Mysql

Hvordan konverterer man alle tabeller i databasen til én kollation?

Du skal udføre en alter table-sætning for hver tabel. Erklæringen ville følge denne form:

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

For nu at få alle tabellerne i databasen skal du udføre følgende forespørgsel:

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

Så lad nu MySQL skrive koden for dig:

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

Du kan kopiere resultaterne og udføre dem. Jeg har ikke testet syntaksen, men du burde kunne finde ud af resten. Tænk på det som en lille øvelse.

Håber det hjælper!



  1. Hvordan CONCAT()-funktionen fungerer i PostgreSQL

  2. ORA-00604 ORA-12705

  3. MS SQL Server på Linux vs Windows Performance Test for at se forskellen

  4. Databaseindeksering i PostgreSQL