Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

ALTER TABLE users MODIFY id INTEGER NOT NULL AUTO_INCREMENT;

Перед запуском выше убедитесь, что столбец id имеет первичный индекс.

Ответ 2

Метод добавления AUTO_INCREMENT в таблицу с данными, избегая при этом ошибки Дублировать запись:

  • Сделайте копию таблицы с данными, используя INSERT SELECT:

    CREATE TABLE backupTable LIKE originalTable; 
    INSERT backupTable SELECT * FROM originalTable;
    
  • Удалить данные из оригиналаTable (чтобы удалить повторяющиеся записи):

    TRUNCATE TABLE originalTable;
    
  • Чтобы добавить AUTO_INCREMENT и ПЕРВИЧНЫЙ КЛЮЧ

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

    INSERT originalTable (col1, col2, col3) 
    SELECT col1, col2,col3
    FROM backupTable;
    
  • Удалить backupTable:

    DROP TABLE backupTable;
    

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

Просто добавьте auto_increment Constraint В столбце или MODIFY COLUMN: -

 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;

Ответ 6

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

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

Это единственный способ сделать автоинкремент столбца.

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

Ответ 7

Alter table table_name modify table_name.column_name data_type AUTO_INCREMENT;

например:

Alter table avion modify avion.av int AUTO_INCREMENT;

Ответ 8

ALTER TABLE Table name ADD column datatype AUTO_INCREMENT,ADD primary key(column);