sql >> Base de Datos >  >> RDS >> Mysql

¿Hay algún efecto negativo al cambiar la codificación de la tabla mysql?

Peligro Creo que que ALTER destruirá el texto existente.

Además,... Su 'nombre' parece chino, así que supongo que desea almacenar caracteres chinos. En ese caso, deberías usar utf8mb4 , no solo utf8 . Esto se debe a que algunos de los caracteres chinos ocupan 4 bytes (y no están en Unicode BMP).

Creo que necesitas 2 pasos :

ALTER TABLE notebooks MODIFY comments BLOB;
ALTER TABLE notebooks MODIFY comments TEXT
          CHARACTER SET utf8mb4  COLLATE utf8mb4_general_520_ci;

De lo contrario, los caracteres latinos1 será "convertido" a ut8. Pero si realmente tiene chino en la columna, no tiene latin1. La alteración de 2 pasos, arriba, (1) desactiva cualquier conocimiento del conjunto de caracteres y (2) establece que los bytes están realmente codificados en utf8mb4.

Para estar más seguro , primero haz

RENAME TABLE notebooks TO old;
CREATE TABLE notebooks LIKE old;
INSERT INTO notebooks SELECT * FROM old;

Luego haga los dos ALTER y pruebe el resultado. Si hay problemas, puede RENAME para recuperar la copia anterior.