Comment changer le charset par défaut d’une table MySQL?

Il y a une table MySQL qui a cette définition prise de SQLYog Enterprise :

 Table Create Table ----------------- --------------------------------------------------------- etape_prospection CREATE TABLE `etape_prospection` ( `etape_prosp_id` int(10) NOT NULL AUTO_INCREMENT, `type_prosp_id` int(10) NOT NULL DEFAULT '0', `prosp_id` int(10) NOT NULL DEFAULT '0', `etape_prosp_date` datetime DEFAULT NULL, `etape_prosp_comment` text, PRIMARY KEY (`etape_prosp_id`), KEY `concerne_fk` (`prosp_id`), KEY `de_type_fk` (`type_prosp_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 

Je veux changer le default charset de default charset de cette table de latin1 à utf8 . Comment faire ça ?

Si vous souhaitez remplacer le jeu de default character set la table et toutes les colonnes de caractères par un nouveau jeu de caractères, utilisez une instruction comme celle-ci:

 ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name; 

Donc, la requête sera:

 ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8; 

Changer le jeu de caractères par défaut de la table:

 ALTER TABLE etape_prospection CHARACTER SET utf8, COLLATE utf8_general_ci; 

Pour modifier le jeu de caractères de la colonne ssortingng exceute cette requête:

 ALTER TABLE etape_prospection CHANGE COLUMN etape_prosp_comment etape_prosp_comment TEXT CHARACTER SET utf8 COLLATE utf8_general_ci; 

Vous pouvez modifier la valeur par défaut avec un alter table set default charset tel que alter table set default charset mais cela ne changera pas le jeu de caractères des colonnes existantes. Pour changer cela, vous devez utiliser une alter table modify column .

Changer le jeu de caractères d’une colonne signifie seulement qu’il pourra stocker un plus grand nombre de caractères. Votre application communique avec la firebase database en utilisant le client mysql, vous devrez peut-être également modifier l’encodage du client.

La commande ALTER TABLE MySQL devrait faire l’affaire. La commande suivante va changer le jeu de caractères par défaut de votre table et le jeu de caractères de toutes ses colonnes en UTF8.

 ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 

Cette commande convertira toutes les colonnes de type texte dans le nouveau jeu de caractères. Les jeux de caractères utilisent des quantités de données différentes par caractère. MySQL convertit donc le type de certaines colonnes pour garantir un espace suffisant pour contenir le même nombre de caractères que l’ancien type de colonne.

Je vous recommande de lire la documentation ALTER TABLE MySQL avant de modifier les données en direct.