Comment ajouter auto_increment
à une colonne existante d'une table MySQL?
Je pense que vous voulez MODIFY
la colonne comme décrit pour la commande ALTER TABLE
. Cela pourrait être quelque chose comme ça:
ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;
Avant d’exécuter ci-dessus, assurez-vous que la colonne id
a un index primaire.
Méthode permettant d'ajouter AUTO_INCREMENT à une table avec des données tout en évitant l'erreur “Entrée en double”
Faites une copie de la table avec les données en utilisant INSERT SELECT:
CREATE TABLE backupTable LIKE originalTable;
INSERT backupTable SELECT * FROM originalTable;
Supprimer les données de la table d'origine (pour supprimer les entrées en double):
TRUNCATE TABLE originalTable;
Pour ajouter AUTO_INCREMENT et PRIMARY KEY
ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
Copier les données dans OriginalTable (ne pas inclure la nouvelle colonne (id), car elle sera automatiquement remplie)
INSERT originalTable (col1, col2, col3)
SELECT col1, col2,col3
FROM backupTable;
Supprimer backupTable:
DROP TABLE backupTable;
J'espère que c'est utile!
Plus sur la duplication de tables en utilisant CREATE LIKE:
Alter table table_name modify column_name datatype(length) AUTO_INCREMENT PRIMARY KEY
Vous devez ajouter la clé primaire pour l'incrémentation automatique, sinon vous aurez une erreur dans mysql.
Il suffit simplement d'ajouter auto_increment Constraint In column ou MODIFY COLUMN: -
ALTER TABLE `emp` MODIFY COLUMN `id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;
Ou ajoutez d'abord une colonne puis changez de colonne en tant que -
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 au cas où vous voudriez changer l'attribut AUTO_INCREMENT pour une table non-vide:
1.) Exporté la table entière en fichier .sql
2.) Suppression du tableau après exportation
2.) La modification de la commande CREATE_TABLE était-elle nécessaire?
3.) Exécution des commandes CREATE_TABLE et INSERT_INTO à partir du fichier .sql
... et alto
Alter table table_name modify table_name.column_name data_type AUTO_INCREMENT;
par exemple:
Alter table avion modify avion.av int AUTO_INCREMENT;
J'ai réussi à faire cela avec le code suivant:
ALTER TABLE `table_name`
CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;
C’est la seule façon pour moi d’incrémenter automatiquement une colonne.
INT (11) indique que la longueur maximale en int est 11, vous pouvez le sauter si vous le souhaitez.