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.