réactiver un auto-increment désactivé
Bonjour à tous,
Je suis en train de migrer sous MySQL des databases HSQLDB créées avec OpenOffice.org. La plupart de mes tables possèdent une clé primaire auto-incrémentée. Certaines tables sont en relation (1-n), une clé étrangère d'une table contenant la valeur de la clé primaire auto-incrémentée de la table liée.
Pour la migration j'ai désactivé l'auto-incrémentation des tables cible pour ne pas modifier les valeurs des clés primaires.
Mon idée était donc qu'après avoir rempli mes tables MySQL (je suis passé par un fichier intermédiaire au format csv) , je réactivais l'auto-incrément et le faisais redémarrer après la dernière valeur.
Mais je n'arrive pas à réactiver l'auto-incrémentation (par ALTER TABLE). Ce n'est peut-être pas possible ?
Merci de votre aide,
Bernard Ribot
réactiver un auto-increment désactivé
Citation:
Envoyé par
CinePhil
Quelle requête as-tu essayé ? Quelle erreur as-tu obtenu ?
Bonsoir,
Pour préciser un peu ce que j'ai fait j'ajouterais que :
- j'ai créé des fichiers au format csv à partir de mes tables HSQL
- j'ai créé "a la mano" les tables sous MySQL mais sans activer l'auto-increment au niveau des clés primaires
- j'ai chargé mes tables MySQL avec un LOAD DATA
- et enfin j'ai voulu réactiver l'auto-increment par un ALTER TABLE tb1 CHANGE id AUTO_INCREMENT (c'est un peu "au pif" que j'ai essayé ça ! j'avoue n'avoir rien trouvé de ce genre dans la doc MySQL). Ca s'est bien évidemment terminé par une erreur de syntaxe (1064).
Je viens de recréer mes tables MySQL avec auto-increment cette fois-ci et refait le chargement. En fait j'ai vu qu'il n'y avait pas trop de dégats. Au départ je craignais que le LOAD me renumérote mais clés. Mais ce n'est pas le cas (les "trous" d'origine y sont encore). Par contre, le 1er enregistrement de chaque table qui avait l'id 0 (HSQL débute par défaut l'auto-increment à 0) a été supprimé (MySQL semble quant à lui débuter à 1).
Bernard