Как добавить AUTO INCREMENT в существующий столбец?

Как добавить auto_increment к существующему столбцу таблицы MySQL?

7 ответов


Я думаю, вы хотите MODIFY колонки, как описано для ALTER TABLE команда. Это может быть что-то вроде этого:

ALTER TABLE t1 MODIFY b INTEGER NOT NULL AUTO_INCREMENT;

метод добавления AUTO_INCREMENT в таблицу С данными избегая "повторяющиеся записи" ошибка:

  1. сделайте копию таблицы С данные с помощью INSERT SELECT:

    CREATE TABLE backupTable LIKE originalTable; 
    INSERT backupTable SELECT * FROM originalTable;
    
  2. удалить данные из originalTable (чтобы удалить дубликаты записей):

    TRUNCATE TABLE originalTable;
    
  3. добавить AUTO_INCREMENT и основной Ключ

    ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
    
  4. скопируйте данные обратно в originalTable (do не включить вновь созданный столбец (id), так как он будет автоматически заполнен)

    INSERT originalTable (col1, col2, col3) 
    SELECT col1, col2,col3
    FROM backupTable;
    
  5. удалить backupTable:

    DROP TABLE backupTable;
    

Я надеюсь, что это полезно!

подробнее о дублировании таблиц с помощью CREATE LIKE:

дублирование таблицы MySQL, индексов и данных


Alter table table_name modify column_name datatype(length) AUTO_INCREMENT PRIMARY KEY

вы должны добавить первичный ключ к автоматическому приращению, иначе вы получили ошибку в mysql.


Это сработало для меня, если вы хотите изменить атрибут AUTO_INCREMENT для непустой таблицы:

1.) Экспортировал всю таблицу как .sql-файл
2.) Удалил таблицу после экспорта
2.)Нужно было изменить команду CREATE_TABLE
3.) Выполнил команды CREATE_TABLE и INSERT_INTO из.в sql-файл
...Эт Виола


просто добавьте ограничение auto_increment в столбец или измените столбец : -

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

или сначала добавьте столбец, а затем измените столбец как -

1. Alter TABLE `emp` ADD COLUMN `id`;

2. ALTER TABLE `emp` CHANGE COLUMN `id` `Emp_id` INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;

мне удалось сделать это со следующим кодом:

ALTER TABLE `table_name`
CHANGE COLUMN `colum_name` `colum_name` INT(11) NOT NULL AUTO_INCREMENT FIRST;

это единственный способ сделать автоматическое увеличение столбца.

INT (11) показывает, что максимальная длина int равна 11, вы можете пропустить ее, если хотите.


Alter table table_name modify table_name.column_name data_type AUTO_INCREMENT;

например:

Alter table avion modify avion.av int AUTO_INCREMENT;