Как добавить AUTO INCREMENT в существующий столбец?
Как добавить auto_increment
к существующему столбцу таблицы MySQL?
7 ответов
Я думаю, вы хотите MODIFY
колонки, как описано для ALTER TABLE
команда. Это может быть что-то вроде этого:
ALTER TABLE t1 MODIFY b INTEGER NOT NULL AUTO_INCREMENT;
метод добавления AUTO_INCREMENT в таблицу С данными избегая "повторяющиеся записи" ошибка:
-
сделайте копию таблицы С данные с помощью INSERT SELECT:
CREATE TABLE backupTable LIKE originalTable; INSERT backupTable SELECT * FROM originalTable;
-
удалить данные из originalTable (чтобы удалить дубликаты записей):
TRUNCATE TABLE originalTable;
-
добавить AUTO_INCREMENT и основной Ключ
ALTER TABLE originalTable ADD id INT PRIMARY KEY AUTO_INCREMENT;
-
скопируйте данные обратно в originalTable (do не включить вновь созданный столбец (id), так как он будет автоматически заполнен)
INSERT originalTable (col1, col2, col3) SELECT col1, col2,col3 FROM backupTable;
-
удалить backupTable:
DROP TABLE backupTable;
Я надеюсь, что это полезно!
подробнее о дублировании таблиц с помощью CREATE LIKE:
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;