18.18 Problèmes avec ALTER TABLE.

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.