Comment ajouter auto_increment
à une colonne existante d'une table MySQL ?
Réponses
Trop de publicités?Je pense que vous voulez MODIFY
la colonne comme décrit pour le ALTER TABLE
commande . Il pourrait s'agir de quelque chose comme ceci :
ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;
Avant de procéder à l'exécution ci-dessus, assurez-vous que id
possède un index primaire.
Méthode pour ajouter AUTO_INCREMENT à une table avec données tout en évitant " Double entrée "erreur :
-
Faire une copie du tableau avec les données à l'aide de INSERT SELECT :
CREATE TABLE backupTable LIKE originalTable; INSERT backupTable SELECT * FROM originalTable;
-
Supprimer les données de la table originale (pour supprimer les entrées en double) :
TRUNCATE TABLE originalTable;
-
Pour ajouter AUTO_INCREMENT y CLÉ PRIMAIRE
ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
-
Copier les données dans le tableau original (do no inclure la colonne nouvellement créée (id), puisqu'elle sera automatiquement remplie)
INSERT originalTable (col1, col2, col3) SELECT col1, col2,col3 FROM backupTable;
-
Supprimer la table de sauvegarde :
DROP TABLE backupTable;
Plus d'informations sur la duplication des tables à l'aide de CREATE LIKE :
Il suffit d'ajouter la contrainte auto_increment dans la colonne ou de MODIFIER LA COLONNE :-
ALTER TABLE `emp` MODIFY COLUMN `id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;
Ou ajouter d'abord une colonne, puis modifier la colonne comme -
1. Alter TABLE `emp` ADD COLUMN `id`;
2. ALTER TABLE `emp` CHANGE COLUMN `id` `Emp_id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;
Cela a fonctionné pour moi dans le cas où vous souhaitez modifier l'attribut AUTO_INCREMENT pour une table non vide :
1) Exportation de l'ensemble de la table sous forme de fichier .sql
2) Suppression du tableau après l'exportation
2.) Changement nécessaire dans la commande CREATE_TABLE
3) Exécution des commandes CREATE_TABLE et INSERT_INTO du fichier .sql.
...et viola
- Réponses précédentes
- Plus de réponses