Как добавить auto_increment
в существующий столбец таблицы MySQL?
Как добавить AUTO_INCREMENT в существующий столбец?
Ответ 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:
Ответ 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);