sql >> Databáze >  >> RDS >> Mysql

Existují nějaké negativní účinky při změně kódování tabulky mysql?

Nebezpečí Myslím, že to ALTER zničí existující text.

Také... Vaše 'jméno' vypadá čínsky, takže bych tipoval, že chcete ukládat čínské znaky? V takovém případě byste měli použít utf8mb4 , nejen utf8 . Důvodem je, že některé čínské znaky zabírají 4 bajty (a nejsou v Unicode BMP).

Domnívám se, že potřebujete 2 kroky :

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

Jinak znaky latin1 bude "převeden" na ut8. Ale pokud máte ve sloupci opravdu čínštinu, nemáte latinu1. Výše uvedený 2krokový alter (1) vypne jakoukoli znalost znakové sady a (2) stanoví, že bajty jsou skutečně kódovány utf8mb4.

Chcete-li být bezpečnější , nejprve udělejte

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

Poté proveďte dva ALTERy a otestujte výsledek. Pokud dojde k potížím, můžete RENAME získat zpět starou kopii.



  1. Jak najdu datový adresář pro instanci SQL Server?

  2. Jak nejprve použít kód MySql a Entity Framework 4.1

  3. MySQL SELECT LIKE nebo REGEXP pro shodu více slov v jednom záznamu

  4. Jak nejlépe využít funkci komentářů v MySQL