Comment ajouter auto_increment
à une colonne existante d'une table MySQL ?
Réponses
Trop de publicités?J'ai réussi à le faire avec le code suivant :
ALTER TABLE `table_name`
CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;
C'est le seul moyen que j'ai trouvé pour qu'une colonne s'incrémente automatiquement.
INT(11) montre que la longueur maximale d'un int est de 11, vous pouvez l'ignorer si vous le souhaitez.
J'avais des données existantes dans la première colonne et elles étaient des 0. J'ai d'abord rendu la première colonne nullable. Ensuite, j'ai défini les données de la colonne comme étant nulles. Ensuite, j'ai défini la colonne comme un index. Ensuite, j'en ai fait une clé primaire avec l'incrémentation automatique activée. C'est là que j'ai utilisé la réponse d'une autre personne ci-dessus :
ALTER TABLE `table_name` CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;
Ceci ajoute des numéros à toutes les lignes de ce tableau en commençant par un. Si j'exécute d'abord le code ci-dessus, il ne fonctionne pas car toutes les valeurs sont des 0. De plus, il était nécessaire de créer un index avant de procéder à l'incrémentation automatique. Ensuite, j'ai fait de la colonne une clé primaire.
Cela a fonctionné dans mon cas, si vous voulez changer l'attribut d'une colonne qui contient déjà des données pour qu'elle s'incrémente automatiquement.
1. aller à la structure, sélectionner la colonne à modifier. 2) Après avoir sélectionné la colonne, choisissez la clé primaire parmi les options ci-dessous. [1] : https://i.stack.imgur.com/r7w8f.png 3) Modifier ensuite l'attribut de la colonne pour qu'elle soit auto-incrémentée en utilisant la méthode alter.