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ę.