Ich habe eine bereits vorhandene Tabelle, die 'fname', 'lname', 'email', 'password' und 'ip' enthält. Aber jetzt möchte ich eine automatische Inkrementierungsspalte. Wenn ich jedoch eintrete:
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?:)
mysql
sql
definition
auto-increment
Charles Jenkins
quelle
quelle
describe users
Antworten:
Versuche dies
ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
quelle
FIRST
der Abfrage hinzu, um sie zur ersten in dieser Tabelle zu machen.ALTER TABLE users DROP PRIMARY KEY, ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
FIRST
zBALTER TABLE tbl1 ADD id INT PRIMARY KEY AUTO_INCREMENT FIRST
Wenn es Ihnen egal ist, ob die Auto-ID als verwendet wird
PRIMARY KEY
, können Sie dies einfach tunALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;
Ich habe das gerade gemacht und es hat gut geklappt.
quelle
FIRST
machen die dort?Wenn Sie AUTO_INCREMENT zu einer vorhandenen Tabelle hinzufügen möchten, müssen Sie den folgenden SQL-Befehl ausführen:
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key
quelle
Multiple primary key defined
weil Sie bereits einen Primärschlüssel auf dem Tisch haben. Eine Tabelle kann nur einen Primärschlüssel haben. Wiederholen Sie den obigen Befehl in der Tabelle, wenn es keinen Primärschlüssel hatALTER TABLE users DROP PRIMARY KEY, ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
Zuerst müssen Sie den Primärschlüssel der Tabelle entfernen
ALTER TABLE nametable DROP PRIMARY KEY
und jetzt können Sie die automatische Erhöhung hinzufügen ...
ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
quelle
Duplicate column name 'id'
Nun, Sie müssen zuerst das
auto_increment
undprimary key
Sie haben und dann Ihr 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;
quelle
Wenn Sie den folgenden Befehl ausführen:
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
Dies zeigt Ihnen den Fehler:
Dies liegt daran, dass dieser Befehl versucht, die neue Spalte mit dem Namen
id
zur vorhandenen Tabelle 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 ....!
quelle
Löschen Sie den Primärschlüssel einer Tabelle, falls vorhanden:
ALTER TABLE `tableName` DROP PRIMARY KEY;
Hinzufügen einer Spalte zum automatischen Inkrementieren 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;
quelle
Ändern Sie einfach das 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;
quelle
ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT
Der Integer-Parameter basiert auf meiner Standard-SQL-Einstellung. Ich wünsche Ihnen einen schönen Tag
quelle
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST
quelle
Suchen Sie nach bereits vorhandenen Primärschlüsseln mit einer anderen 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.
quelle
ALTER TABLE `table` ADD `id` INT NOT NULL AUTO_INCREMENT unique
Versuche dies. Sie müssen Ihren Primärschlüssel nicht fallen lassen.
quelle
Für PostgreSQL müssen Sie SERIAL anstelle von auto_increment verwenden.
ALTER TABLE your_table_name ADD COLUMN id SERIAL NOT NULL PRIMARY KEY
quelle
Gehen Sie so vor:
ALTER TABLE yourtable DROP PRIMARY KEY
ALTER TABLE yourtable Spalte hinzufügen ID INT NOT NULL AUTO_INCREMENT FIRST, ADD primäre KEY ID (Id)
Die Tabelle wird angezeigt und die AutoInc aktualisiert.
quelle