web-dev-qa-db-ja.com

自動インクリメントIDを既存のテーブルに追加しますか?

「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

何かアドバイス?:)

61
Charles Jenkins

これを試して

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

自動IDがPRIMARY KEYとして使用されているかどうか気にしない場合は、次のようにします。

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

私はちょうどこれをやったとそれは御treat走を働いた。

60
Coderer

既存のテーブルにAUTO_INCREMENTを追加する場合は、次のSQLコマンドを実行する必要があります。

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

まず、テーブルの主キーを削除する必要があります

ALTER TABLE nametable DROP PRIMARY KEY

そして今、あなたは自動インクリメントを追加することができます...

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

次のように、最初にauto_incrementprimary 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;
5
Sunny Verma

ADDをMODIFYに変更するだけで機能します!

交換

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
刘斌文