Die folgenden Beispiele zeigen, wie MySQL die Standardwerte für den Zeichensatz und die Sortierfolge ermittelt.
Beispiel 1: Tabellen- und Spaltendefinition
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Hier haben wir eine Spalte mit dem Zeichensatz
latin1 und der Sortierfolge
latin1_german1_ci. Die Definition ist
explizit, d. h., die Werte ergeben sich von selbst. Beachten
Sie, dass das Speichern einer latin1-Spalte
in einer latin2-Tabelle unproblematisch ist.
Beispiel 2: Tabellen- und Spaltendefinition
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Hier nun haben wir eine Spalte mit dem Zeichensatz
latin1 und der Standardsortierfolge. Obwohl
es naheliegend erscheint, wird die Standardsortierfolge nicht
von der Tabellenebene übernommen. Stattdessen hat, weil die
Standardsortierfolge von latin1 immer
latin1_swedish_ci ist, die Spalte
c1 die Sortierfolge
latin1_swedish_ci (und nicht
latin1_danish_ci).
Beispiel 3: Tabellen- und Spaltendefinition
CREATE TABLE t1
(
c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Hier haben wir eine Spalte mit den Standardwerten für
Zeichensatz und Sortierfolge. Unter diesen Umständen bestimmt
MySQL anhand der Angaben auf der Tabellenebene den Zeichensatz
und die Sortierfolge für die Spalte. Es ergibt sich, dass der
Zeichensatz latin1 und die zugehörige
Sortierfolge latin1_danish_ci für die Spalte
c1 eingestellt werden.
Beispiel 4: Datenbank-, Tabellen- und Spaltendefinition
CREATE DATABASE d1
DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
c1 CHAR(10)
);
Wir erstellen eine Spalte ohne Angabe von Zeichensatz und
Sortierfolge. Ebenso wenig geben wir einen Zeichensatz und eine
Sortierfolge auf der Tabellenebene an. Unter diesen Umständen
überprüft MySQL die Datenbankebene, um die
Tabelleneinstellungen zu ermitteln, die daraufhin auch zu den
Spalteneinstellungen werden. Es ergibt sich, dass der
Zeichensatz latin2 und die zugehörige
Sortierfolge latin2_czech_ci für die Spalte
c1 eingestellt werden.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.
