Marla: MySQL: Kollation für alle (Text-)Felder ändern

Hi

da ich einige Tabellen mit etlichen Feldern und die meisten davon Text beinhalten bzw. eine Kollation haben, die ich nun gerne ändern möchte, suche ich nach einer 'angenehmen' Möglichkeit, das zu erreichen.

latin1 soll auf utf8_bin umgestellt werden, aber jedes Feld einzeln zu ändern ist nicht sehr fortschrittlich.

Großes Danke für Tippgeber

  1. da ich einige Tabellen mit etlichen Feldern und die meisten davon Text beinhalten bzw. eine Kollation haben, die ich nun gerne ändern möchte, suche ich nach einer 'angenehmen' Möglichkeit, das zu erreichen.

    Dump in Textdatei, mit Suchen&Ersetzen manipulieren und wieder rein in die Datenbank - das hat sich für mich als einfach und effektiv erwiesen.

    latin1 soll auf utf8_bin umgestellt werden, aber jedes Feld einzeln zu ändern ist nicht sehr fortschrittlich.

    bist du dir mit utf8_bin _wirklich_ sicher?

    1. Hi!

      Dump in Textdatei, mit Suchen&Ersetzen manipulieren und wieder rein in die Datenbank - das hat sich für mich als einfach und effektiv erwiesen.

      Ein Dump erzeugt CREATE-TABLE-Statements, die nützen nichts, wenn man nur die Feldkodierung ändern möchte. Das geht mit einem ALTER-TABLE-Statement. Der Aufwand des Ausgebens und wieder Einlesens der Daten ist nicht notwendig.

      Wenn man das ALTER TABLE nicht zu Fuß erstellen möchte, kann man ja durch Befragen der INFORMATION_SCHEMA-Tabellen die String-Felder (und Tabellennamen) ermitteln und sich dann entsprechende Statements erstellen lassen.

      latin1 soll auf utf8_bin umgestellt werden, aber jedes Feld einzeln zu ändern ist nicht sehr fortschrittlich.
      bist du dir mit utf8_bin _wirklich_ sicher?

      Das ist zumindest UTF-8 ohne Berücksichtigung von nationalen Besonderheiten - die einzige case-sensitive Variante.

      Lo!