Gevaar Ik denk dat dat ALTER
zal bestaande tekst vernietigen.
Ook, ... Je 'naam' ziet er Chinees uit, dus ik vermoed dat je Chinese karakters wilt opslaan? In dat geval moet u utf8mb4
. gebruiken , niet alleen utf8
. Dit komt omdat sommige Chinese karakters 4 bytes in beslag nemen (en niet in de Unicode BMP staan).
Ik denk dat je 2 stappen nodig hebt :
ALTER TABLE notebooks MODIFY comments BLOB;
ALTER TABLE notebooks MODIFY comments TEXT
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_520_ci;
Anders de latin1 tekens wordt "geconverteerd" naar ut8. Maar als je echt Chinees in de kolom hebt staan, heb je geen latin1. De bovenstaande wijziging in twee stappen (1) schakelt alle kennis van de tekenset uit en (2) stelt vast dat de bytes echt utf8mb4-gecodeerd zijn.
Om veiliger te zijn , doe eerst
RENAME TABLE notebooks TO old;
CREATE TABLE notebooks LIKE old;
INSERT INTO notebooks SELECT * FROM old;
Voer vervolgens de twee ALTER's uit en test het resultaat. Als er problemen zijn, kunt u RENAME
om de oude kopie terug te krijgen.