È necessario eseguire un'istruzione alter table per ogni tabella. La dichiarazione seguirebbe questa forma:
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
Ora per ottenere tutte le tabelle nel database dovresti eseguire la seguente query:
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="YourDataBaseName"
AND TABLE_TYPE="BASE TABLE";
Quindi ora lascia che MySQL scriva il codice per te:
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";
Puoi copiare i risultati ed eseguirli. Non ho testato la sintassi ma dovresti essere in grado di capire il resto. Consideralo come un piccolo esercizio.
Spero che ti aiuti!