it-swarm.com.ru

Добавить автоинкрементный идентификатор в существующую таблицу?

У меня есть уже существующая таблица, содержащая «fname», «lname», «email», «password» и «ip». Но теперь я хочу столбец автоинкремента. Тем не менее, когда я вхожу:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT

Я получаю следующее:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Любой совет?:)

54
Charles Jenkins

Попробуй это 

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
96
Muhammad Asif Mahmood

Если вам все равно, используется ли автоматический идентификатор в качестве PRIMARY KEY, вы можете просто сделать

ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;

Я просто сделал это, и это сработало.

58
Coderer

Если вы хотите добавить AUTO INCREMENT в существующую таблицу, необходимо выполнить следующую команду SQL:

 ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key
23
Bhaskar Bhatt

Сначала вы должны удалить первичный ключ таблицы

ALTER TABLE nametable DROP PRIMARY KEY

и теперь вы можете добавить автоинкремент ...

ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
20
jrltt

Ну, вы должны сначала отбросить имеющиеся у вас auto_increment и primary key, а затем добавить свои, как показано ниже:

-- drop auto_increment capability
alter table `users` modify column id INT NOT NULL;
-- in one line, drop primary key and rebuild one
alter table `users` drop primary key, add primary key(id);
-- re add the auto_increment capability, last value is remembered
alter table `users` modify column id INT NOT NULL AUTO_INCREMENT;
14
echo_Me

Удалите первичный ключ таблицы, если он существует:

 ALTER TABLE `tableName` DROP PRIMARY KEY;

Добавление столбца с автоинкрементом в таблицу:

ALTER TABLE `tableName` ADD `Column_name` INT PRIMARY KEY AUTO_INCREMENT;

Измените столбец, который мы хотим считать первичным ключом:

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
4
Sunny Verma

Просто измените ДОБАВИТЬ на ИЗМЕНИТЬ, и это будет работать!

Замещать 

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT

К 

ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT;
3
John Joe
ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT

целочисленный параметр основан на моей настройке sql по умолчанию Хорошего дня

2
Odhik Susanto

Если вы запустите следующую команду:

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

Это покажет вам ошибку:

ERROR 1060 (42S21): Duplicate column name 'id'

Это потому, что эта команда попытается добавить новый столбец с именем id в существующую таблицу.

Чтобы изменить существующий столбец, вы должны использовать следующую команду:

ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

Это должно работать для изменения существующего ограничения столбца ....!

2
Rajat Dabade
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST
2
php

Проверьте уже существующий первичный ключ с другим столбцом. Если да, удалите первичный ключ, используя: 

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

а затем напишите свой запрос как есть.

0
user3100184
ALTER TABLE `table` ADD `id` INT NOT NULL AUTO_INCREMENT unique

Попробуй это. Нет необходимости сбрасывать ваш первичный ключ.

0
刘斌文