Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy są jakieś negatywne skutki zmiany kodowania tabeli mysql?

Niebezpieczeństwo Myślę, że to ALTER zniszczy istniejący tekst.

Poza tym... Twoje „imię” wygląda na chińskie, więc domyślam się, że chcesz przechowywać chińskie znaki? W takim przypadku powinieneś użyć utf8mb4 , nie tylko utf8 . Dzieje się tak, ponieważ niektóre chińskie znaki zajmują 4 bajty (i nie występują w Unicode BMP).

Uważam, że potrzebujesz 2 kroków :

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

W przeciwnym razie znaki latin1 zostanie „przekonwertowany” na ut8. Ale jeśli naprawdę masz chiński w kolumnie, nie masz latin1. Powyższa dwuetapowa zmiana (1) wyłącza wszelką wiedzę o zestawie znaków i (2) ustala, że ​​bajty są naprawdę zakodowane w formacie utf8mb4.

Aby być bezpieczniejszym , najpierw zrób

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

Następnie wykonaj dwa ALTER i sprawdź wynik. Jeśli wystąpią problemy, możesz RENAME aby odzyskać starą kopię.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Jak wysłać zapytanie do kolumny, której typ jest bitowy?

  2. MySQL – Uzyskaj koszt ostatniego zapytania za pomocą POKAŻ STATUS JAK „Last_Query_Cost”

  3. Jak pokazać sortowanie połączenia w MySQL?

  4. SQL Wybierz tylko wiersze, w których istnieje wiele relacji

  5. Mój program nie może przechowywać wartości w MySQL przy użyciu biblioteki łączników mysql w Pythonie