sql >> Databasteknik >  >> RDS >> Mysql

Finns det några negativa effekter när du ändrar mysql-tabellkodning?

Fara Jag tror att det ALTER kommer att förstöra befintlig text.

Dessutom... Ditt "namn" ser kinesiskt ut, så jag skulle gissa att du vill lagra kinesiska tecken? I så fall bör du använda utf8mb4 , inte bara utf8 . Detta beror på att några av de kinesiska tecknen tar 4 byte (och inte finns i Unicode BMP).

Jag tror att du behöver två steg :

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

Annars latin1 tecken kommer att "konverteras" till ut8. Men om du verkligen har kinesiska i kolumnen så har du inte latin1. 2-stegsändringen ovan stänger (1) av all kunskap om teckenuppsättning och (2) fastställer att byten verkligen är utf8mb4-kodade.

För att vara säkrare , gör först

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

Gör sedan de två ALTERS och testa resultatet. Om det uppstår problem kan du RENAME för att få tillbaka den gamla kopian.



  1. Oracle:SQL-fråga för att hitta alla triggers som hör till tabellerna?

  2. html <select multiple=multiple> + SQL Query Search

  3. Hur väljer man flera poster (rad) från en kolumn i mysql?

  4. Villkorlig WHERE-sats i SQL Server