Danger Je pense que cela ALTER
détruira le texte existant.
De plus, ... Votre 'nom' semble chinois, donc je suppose que vous voulez stocker des caractères chinois ? Dans ce cas, vous devez utiliser utf8mb4
, pas seulement utf8
. C'est parce que certains des caractères chinois prennent 4 octets (et ne sont pas dans le BMP Unicode).
Je pense que vous avez besoin de 2 étapes :
ALTER TABLE notebooks MODIFY comments BLOB;
ALTER TABLE notebooks MODIFY comments TEXT
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_520_ci;
Sinon les caractères latin1 sera "converti" en ut8. Mais si vous avez vraiment le chinois dans la colonne, vous n'avez pas le latin1. La modification en 2 étapes ci-dessus (1) désactive toute connaissance du jeu de caractères et (2) établit que les octets sont réellement encodés en utf8mb4.
Pour être plus sûr , faites d'abord
RENAME TABLE notebooks TO old;
CREATE TABLE notebooks LIKE old;
INSERT INTO notebooks SELECT * FROM old;
Ensuite, faites les deux ALTER et testez le résultat. En cas de problème, vous pouvez RENAME
pour récupérer l'ancienne copie.