Les exemples suivants montrent comment MySQL détermine le jeu de caractère par défaut et les valeurs de collation.
Exemple 1 : définition de table et colonne
CREATE TABLE t1 ( c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci ) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Vous avez ici une colonne avec un jeu de caractères
latin1
et une collation
latin1_german1_ci
. La définition est
explicite, c'est donc direct. Veuillez noter qu'il n'y a pas de
problème à stocker une colonne latin1
dans
une table latin2
.
Exemple 2 : définition de table et colonne
CREATE TABLE t1 ( c1 CHAR(10) CHARACTER SET latin1 ) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Cette fois-ci nous avons une colonne avec un jeu de caractères
latin1
et une collation par défaut.
Maintenant, bien que cela puisse sembler naturel, la collation
par défaut n'est pas spécifiée au niveau de la table. A la
place, comme la collation par défaut de
latin1
est toujours
latin1_swedish_ci
, la colonne
c1
aura la collation
latin1_swedish_ci
(et non
latin1_danish_ci
).
Exemple 3 : définition de table et colonne
CREATE TABLE t1 ( c1 CHAR(10) ) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
Nous avons une colonne avec un jeu de caractères par défaut et
une collation par défaut. Dans ces conditions, MySQL regarde au
niveau de la table pour déterminer le jeu de caractères et la
collation. Par conséquent le jeu de caractères de la colonne
c1
est latin1
et sa
collation est latin1_danish_ci
.
Exemple 4: définition de base, table et colonne
CREATE DATABASE d1 DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci; USE d1; CREATE TABLE t1 ( c1 CHAR(10) );
Nous créons une colonne sans préciser son jeu de caractère ni
sa collation. Nous ne spécifions pas non plus de jeu de
caractères ni de collation au niveau de la table. Dans ces
conditions, MySQL cherche au niveau de la base de données. (La
configuration de la base de donnée devient celle de la table,
et par conséquent celle de la colonne.) Donc le jeu de
caractères de colonne c1
est
latin2
et sa collation est
latin2_czech_ci
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.