Si ALTER TABLE
s'interromps avec une erreur telle que:
Error on rename of './database/name.frm' to './database/B-a.frm' (Errcode: 17)
Le problème est que MySQL a planté durant la dernière commande ALTER TABLE
et qu'il y a une ancienne table du nom de ``A-quelquechose'' ou ``B-quelquechose''. Dans ce cas, allez dans le dossier de données MySQL et effacez toues les fichiers dont les noms commencent par A-
ou B-
. (Ou mieux, déplacez les simplement dans un autre dossier).
ALTER TABLE fonctionne de la manière suivante :
- Il crée une nouvelle table avec le nom ``A-xxx'' contenant les modifications demandées.
- Touts les lignes sont copiées de la table initiale dans la table ``A-xxx''.
- La vieille table est renommée ``B-xxx''.
- `A-xxx' est renommée, et prend le nom de la vieille table
- `B-xxx' est effacé.
Si quelques chose ne fonctionne par durant ce processus, MySQL tente d'annuler les modifications. Si quelque chose d'important survient, MySQL risque de laisser la vieille table ``B-xxx'' et un simple renommage peut vous rendre vos données.