ALTER TABLE
change une table avec le jeu de
caractères courant. Si durant l'exécution d'ALTER
TABLE
vous obtenez une erreur de clef dupliquée,
alors la cause est soit que le nouveau jeu de caractères
interprète deux clefs à la même valeur ou que la table est
corrompue, au quel cas vous devez exécuter REPAIR
TABLE
sur la table.
Si ALTER TABLE
se termine avec une erreur de
ce genre :
Error on rename of './database/name.frm' to './database/B-a.frm' (Errcode: 17)
le problème est peut-être que MySQL a planté lors d'un
précédent appel à ALTER TABLE
et qu'il y a
une ancienne table nommée A-quelquechose
ou B-quelquechose
qui subsiste. Dans ce
cas, placez-vous dans le dossier de données MySQL et effacez
tout les fichiers dont les noms commencent par
A-
ou B-
. (Vous voudrez
peut-être les déplacer autre part plutôt que de les effacer.)
ALTER TABLE
fonctionne de la fa¸on
suivante :
Crée une nouvelle table nommée A-xxx
avec les changements voulus.
Toutes les lignes de l'ancienne table sont copiées dans
A-xxx
.
L'ancienne table est renommée B-xxx
.
A-xxx
est renommée avec le nom de
votre ancienne table.
B-xxx
est supprimée.
Si quelque chose se passe mal durant l'opération de changement
de nom, MySQL essaye d'annuler les changements. Si quelque chose
de grave se passe (cela ne devrait jamais arriver bien sûr),
MySQL peut laisser l'ancienne table en tant que
B-xxx
, mais un simple changement de nom au
niveau système devrait restaurer vos données.
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.