U moet voor elke tabel een alter table-statement uitvoeren. De verklaring zou deze vorm hebben:
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
Om nu alle tabellen in de database te krijgen, moet u de volgende query uitvoeren:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";
Dus laat MySQL nu de code voor je schrijven:
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";
U kunt de resultaten kopiëren en uitvoeren. Ik heb de syntaxis niet getest, maar je zou de rest moeten kunnen achterhalen. Zie het als een kleine oefening.
Hoop dat dat helpt!