Как добавить автоматическое приращение к существующему столбцу?
Как добавить auto_increment
к существующему столбцу таблицы MySQL?
7 ответов:
Я думаю, что вы хотите
MODIFY
колонки, как описано дляALTER TABLE
команда. Это может быть что-то вроде этого:ALTER TABLE t1 MODIFY b INTEGER NOT NULL AUTO_INCREMENT;
метод добавления AUTO_INCREMENT в таблицу С данными избегая при этом "повторяющиеся записи" ошибка:
сделайте копию таблицы С данные с помощью вставки выберите:
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 file
2.) Удалил таблицу после экспорта
2.) Сделал необходимые изменения в CREATE_TABLE command
3.) Выполнил команды CREATE_TABLE и INSERT_INTO из списка .sql-file
...Эт Виола
просто добавьте ограничение 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, вы можете пропустить его, если хотите.