sql >> Database teknologi >  >> RDS >> Mysql

Er der nogen ulemper ved ændring af mysql-tabelkodning?

Fare Jeg tror, ​​at det ALTER vil ødelægge eksisterende tekst.

Også ... Dit 'navn' ser kinesisk ud, så jeg vil gætte på, at du vil gemme kinesiske tegn? I så fald skal du bruge utf8mb4 , ikke kun utf8 . Dette skyldes, at nogle af de kinesiske tegn tager 4 bytes (og er ikke i Unicode BMP).

Jeg tror, ​​du har brug for 2 trin :

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

Ellers latin1 tegn vil blive "konverteret" til ut8. Men hvis du virkelig har kinesisk i kolonnen, har du ikke latin1. 2-trinsændringen ovenfor, (1) slår enhver viden om tegnsæt fra, og (2) fastslår, at bytes virkelig er utf8mb4-kodede.

For at være sikker , først gør

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

Udfør derefter de to ALTER og test resultatet. Hvis der er problemer, kan du RENAME for at få den gamle kopi tilbage.



  1. MySQL-ugeberegning mellem to datoer

  2. Brug SQL-stil forespørgsel i Excel ved hjælp af VBA

  3. Hvordan får jeg MySQL autoincrement primære nøgle fra Sequelize på save()?

  4. Opret forbindelse til en mysql-database via SSH gennem PHP