Zeichensatz einer MySQL-Tabelle (nachträglich) ändern

Wenn sich ein Projekt über eine lange Laufzeit zieht oder ab und an mal ein weiterer Entwickler mitarbeitet, kann es sehr wahrscheinlich zu einem Mix von verschiedenen Tabellenzeichensätzen bei MySQL kommen: latin1, utf8_general, utf8_unicode, …

Ein dadurch auftretender Fehler ist z. B. folgender:

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)

Mit folgendem SQL-Statement bekommt man das aber relativ flott konvertiert:

ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Zum Unterschied zwischen utf8_general und utf8_unicode gibts übrigens im MySQL-Forum einen guten Artikel. Für mich stellt sich somit als Ergebnis: utf8_unicode ist die erste Wahl für internationale Anwendungen, allerdings etwas langsamer als utf8_general.

Ähnliche Beiträge:

Über Markus Zierhut

Life Is What You Make It!
Dieser Beitrag wurde unter SQL abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

6 Kommentare zu Zeichensatz einer MySQL-Tabelle (nachträglich) ändern

  1. Sebastian sagt:

    Super, genau das haben ich gesucht. Danke!

  2. Jens sagt:

    Vielen Dank! Genau diesen Befehl habe ich gesucht, das hilft mir jetzt weiter :-)

  3. Florian Hartl sagt:

    1a, Danke!

  4. S. Gerlach sagt:

    Gut, dass es engagierte Menschen gibt, die so etwas dokumentieren. Vielen Dank dafür!

  5. Stephan sagt:

    Was passiert eigentlich mit den Inhalten in der Datenbank, werden die dadurch automatisch in UTF-8 konvertiert, oder muss man das anders regeln.

  6. Gute Frage. Ich würde sagen ja – danach ist es halt UTF-8, „falsch“ gespeicherte Texte werden dadurch aber nicht richtig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.