Hvis kolonnerne bruger standardtabeltegnsættet, er det kun én forespørgsel pr. tabel, der skal konverteres:
ALTER TABLE t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Hvis tegnsættet er indstillet individuelt på hver kolonne, AFAIK, er der ingen måde at gøre det på alle kolonner i alle tabeller i databasen direkte i MySql, men du kan skrive et lillebitte program på dit valgfrit sprog, der gør det.
Dit program vil forespørge på INFORMATION_SCHEMA.COLUMNS
tabel og se på CHARACTER_SET_NAME kolonne:
SELECT * FROM `INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_SCHEMA = 'dbname' AND CHARACTER_SET_NAME = 'latin1'
For hver resultatrække er det trivielt at syntetisere og udføre en ALTER TABLE forespørgsel på stedet, der ændrer tegnsættet og sorteringen korrekt:
ALTER TABLE t MODIFY col TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
I ovenstående forespørgsel t , col og TEKST ville være værdierne for TABLE_NAME , COLUMN_NAME og DATA_TYPE kolonner fra INFORMATION_SCHEMA.COLUMNS resultatsæt.