Comment ajouter auto INCREMENT à une colonne existante?

comment ajouter auto_increment à une colonne existante D'une table MySQL?

51
demandé sur mpen 2011-02-18 02:07:34

7 réponses

je pense que vous voulez MODIFY la colonne comme décrit pour le ALTER TABLE commande . Cela pourrait être quelque chose comme ceci:

ALTER TABLE t1 MODIFY b INTEGER NOT NULL AUTO_INCREMENT;
76
répondu Don Kirkby 2011-02-17 23:14:12

méthode pour ajouter AUTO_ incrément à une table avec les données tout en évitant " entrée en double "erreur:

  1. faites une copie du tableau avec les données en utilisant insérez sélectionnez:

    CREATE TABLE backupTable LIKE originalTable; 
    INSERT backupTable SELECT * FROM originalTable;
    
  2. supprimer les données du tableau original (pour supprimer les entrées en double):

    TRUNCATE TABLE originalTable;
    
  3. pour ajouter AUTO_ incrément et clé primaire

    ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
    
  4. Copie de données vers originalTable (faire pas comprennent nouvellement créé colonne (id), car il sera automatiquement renseigné)

    INSERT originalTable (col1, col2, col3) 
    SELECT col1, col2,col3
    FROM backupTable;
    
  5. supprimer le tableau de secours:

    DROP TABLE backupTable;
    

j'espère que c'est utile!

plus sur la duplication des tables en utilisant créer comme:

duplication D'une table MySQL, indices et données

14
répondu Arian Acosta 2017-05-23 12:03:05
Alter table table_name modify column_name datatype(length) AUTO_INCREMENT PRIMARY KEY

vous devez ajouter la clé primaire à auto increment, sinon vous avez une erreur dans mysql.

8
répondu php 2014-08-24 18:49:27

cela a fonctionné pour moi dans le cas où vous voulez changer L'attribut AUTO_ incrément-pour une table non vide:



1.) Exportait la table entière sous forme de .fichier sql

2.)A supprimé le tableau après exportation

2.) Did neededed change in CREATE_TABLE command

3.) Exécuté les commandes CREATE_TABLE et INSERT_INTO à partir du .sql-fichier

...et viola

3
répondu walt 2015-01-06 11:33:13

il suffit D'ajouter Auto_ increment Constraint dans la colonne ou de modifier la colonne: -

 ALTER TABLE `emp` MODIFY COLUMN `id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;

ou ajouter une colonne puis changer 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;
3
répondu Zigri2612 2015-08-03 07:16:12

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 la seule façon que j'ai pu faire une augmentation automatique de colonne.

INT (11) montre que la longueur maximale int est de 11, Vous pouvez sauter si vous voulez.

0
répondu Fluch 2018-02-02 19:16:11

Alter table table_name modify table_name.column_name data_type AUTO_INCREMENT;

par exemple:

Alter table avion modify avion.av int AUTO_INCREMENT;

0
répondu Maria 2018-04-17 07:53:56