it-swarm.com.de

Hinzufügen einer Auto-Increment-ID zu einer vorhandenen Tabelle?

Ich habe eine bereits vorhandene Tabelle mit 'fname', 'lname', 'email', 'password' und 'ip'. Aber jetzt möchte ich eine Auto-Inkrement-Spalte. Wenn ich jedoch Folgendes eingebe:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT

Ich bekomme folgendes:

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

Irgendein Rat?:)

54
Charles Jenkins

Versuche dies 

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

Wenn es Ihnen egal ist, ob die Auto-ID als PRIMARY KEY verwendet wird, können Sie dies tun

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

Ich habe das einfach gemacht und es hat sehr gut funktioniert.

58
Coderer

Wenn Sie AUTO INCREMENT in eine vorhandene Tabelle einfügen möchten, müssen Sie den folgenden SQL-Befehl ausführen:

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

Zuerst müssen Sie den Primärschlüssel der Tabelle entfernen

ALTER TABLE nametable DROP PRIMARY KEY

und jetzt können Sie das Autoincrement hinzufügen ...

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

Nun, Sie müssen zuerst den auto_increment und primary key ablegen und dann Ihren hinzufügen, wie folgt:

-- 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

Löschen Sie den Primärschlüssel einer Tabelle, falls vorhanden:

 ALTER TABLE `tableName` DROP PRIMARY KEY;

Hinzufügen einer automatischen Inkrementierungsspalte zu einer Tabelle:

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

Ändern Sie die Spalte, die wir als Primärschlüssel betrachten möchten:

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

Ändern Sie einfach den ADD in MODIFY und es wird funktionieren!

Ersetzen 

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT

Zu 

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

der Integer-Parameter basiert auf meiner Standardeinstellung für SQL einen schönen Tag

2
Odhik Susanto

Wenn Sie den folgenden Befehl ausführen:

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

Dies zeigt Ihnen den Fehler:

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

Dies liegt daran, dass dieser Befehl versucht, der vorhandenen Tabelle die neue Spalte mit dem Namen id hinzuzufügen.

Um die vorhandene Spalte zu ändern, müssen Sie den folgenden Befehl verwenden:

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

Dies sollte funktionieren, um die vorhandene Spaltenbeschränkung zu ändern ....!

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

Suchen Sie nach bereits vorhandenem Primärschlüssel mit anderer Spalte. Wenn ja, löschen Sie den Primärschlüssel mit: 

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

und schreiben Sie dann Ihre Anfrage so, wie sie ist.

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

Versuche dies. Sie müssen Ihren Primärschlüssel nicht fallen lassen.

0
刘斌文