En utilisant l’intelligence de MySQL
Pour trouver la liste des tables à modifié simplement faire:
SELECT table_name FROM `information_schema`.`TABLES` WHERE table_schema = 'nom_de_la_base_de_donnée'
Puis pour les modifiés
ALTER TABLE `nom_de_la_db`.`nom_de_la_table` convert TO character SET nom_du_charset;
L’avantage d’utiliser convert to est que MySQL prend soin de modifié les types de variables pour accomodé le nombre de caractères original. Or si vous passer de latin-1 qui utilise 1 seul octet par caractère dans un champ text qui peut accommoder jusqu’à 65535 caractère et que vous convertissez vers UTF8 qui peut nescéssiter jusqu’à 3 octets par caractère pour un maximum total de 3 × 65,535 = 196,605 bytes et bien MySQL prendra le soin de convertir le type à MEDIUMTEXT qui peut accomoder les 196,608 caractères requis. MySQL va toujours utiliser le plus petit format possible qui peut prendre la longueur de la chaine requise.
Merci Stéphan pour le truc. Je vais passer le mot !