Jeux de caractères 4.0 et binômes de jeux de caractères/collations 4.1 correspondants
<<<
Conversion de colonnes version 4.0 en version 4.1 Jeux de caractères et Unicode
>>>

11.10 Préparer le passage de version 4.0 en 4.1
11 Jeux de caractères et Unicode
 Manuel de Référence MySQL 4.1 : Version Française

Jeux de caractères 4.0 et binômes de jeux de caractères/collations 4.1 correspondants
->Conversion de colonnes version 4.0 en version 4.1

11.10.2 Conversion de colonnes version 4.0 en version 4.1

Normalement, votre serveur utilise le jeu de caractères par défaut latin1 . Si vous avez stocké des données qui sont dans un autre jeu de caractères que ceux supportés par la version 4.1, vous pouvez convertir la colonne. Cependant, vous devriez éviter de convertir directement les colonnes de latin1 vers un "vrai" jeu de caractère. Cela peut conduire à des pertes de données. Au lieu de cela, convertissez la colonne en un type de colonne binaire, avec le jeu de caractères voulu. La conversion avec un format binaire conservera les données intactes. Par exemple, supposez que vous avez une table version 4.0, avec trois colonnes qui sont utilisées pour stocker des valeurs avec les jeux de caractères latin1 , latin2 et utf8 :

CREATE TABLE t
(
    latin1_col CHAR(50),
    latin2_col CHAR(100),
    utf8_col CHAR(150)
);
Après mise à jour en MySQL version 4.1, vous pouvez convertir cette table pour qu'elle laisse intacte la colonne latin1_col mais modifie les colonnes latin2_col et utf8_col pour qu'elles utilisent les jeux de caractères latin2 et utf8 . D'abord, sauvez votre table, puis convertissez les colonnes comme ceci :

ALTER TABLE t MODIFY latin2_col BINARY(100);
ALTER TABLE t MODIFY utf8_col BINARY(150);
ALTER TABLE t MODIFY latin2_col CHAR(100) CHARACTER SET latin2;
ALTER TABLE t MODIFY utf8_col CHAR(150) CHARACTER SET utf8;
La première commande ``supprime'' les informations de jeux de caractères des colonnes latin2_col et utf8_col . Les deux autres commandes assignent le bon jeu de caractère aux deux colonnes.

Si vous voulez, vous pouvez combiner les deux conversions en une seule commande :


ALTER TABLE t
    MODIFY latin2_col BINARY(100),
    MODIFY utf8_col BINARY(150);
ALTER TABLE t
    MODIFY latin2_col CHAR(100) CHARACTER SET latin2,
    MODIFY utf8_col CHAR(150) CHARACTER SET utf8;

<< Conversion de colonnes version 4.0 en version 4.1 >>
Jeux de caractères 4.0 et binômes de jeux de caractères/collations 4.1 correspondants Préparer le passage de version 4.0 en 4.1 Jeux de caractères et Unicode