Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли някакви отрицателни ефекти при промяна на кодирането на таблицата на mysql?

Опасност Мисля, че това ALTER ще унищожи съществуващия текст.

Освен това... Вашето „име“ изглежда китайско, така че предполагам, че искате да съхранявате китайски знаци? В този случай трябва да използвате utf8mb4 , а не само utf8 . Това е така, защото някои от китайските знаци заемат 4 байта (и не са в Unicode BMP).

Вярвам, че се нуждаете от 2 стъпки :

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

В противен случай знаците latin1 ще бъде "конвертиран" в ut8. Но ако наистина имате китайски в колоната, нямате latin1. Промяната в 2 стъпки, по-горе, (1) изключва всяко познаване на набора от знаци и (2) установява, че байтовете наистина са кодирани utf8mb4.

За да бъдепо-безопасно , първо направете

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

След това направете двете ALTER и тествайте резултата. Ако има проблем, можете да RENAME за да си върнете старото копие.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съхранявате няколко елемента в колона на база данни?

  2. какъв е най-добрият начин за интернационализация в php?

  3. Защо връщането на MySQL винаги е 1 в кода на C#, но не и когато тествам в съхранена процедура?

  4. Изтичане на памет в JDBC4Connection

  5. нещо за ansi_nulls