100

「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

何かアドバイス?:)

4

16 に答える 16

143

これを試して

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT;

既存の主キー

于 2013-02-07T14:31:00.447 に答える
44

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

 ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key
于 2013-02-07T14:24:59.987 に答える
26

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

ALTER TABLE nametable DROP PRIMARY KEY

そして今、自動インクリメントを追加できます...

ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
于 2014-01-30T15:50:27.083 に答える
18

さて、あなたは最初にドロップする必要があります、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;
于 2013-02-07T14:27:45.047 に答える
16

次のコマンドを実行すると:

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;

これは、既存の列の制約を変更するために機能するはずです....!

于 2019-03-12T04:49:46.013 に答える
10

テーブルの主キーが存在する場合は削除します。

 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;
于 2018-05-22T12:58:14.383 に答える
0

このSQLリクエストは私のために働きます:

ALTER TABLE users
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
于 2021-01-15T16:26:47.227 に答える
-1

別の列を持つ既存の主キーを確認します。はいの場合は、次を使用して主キーを削除します。

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

次に、クエリをそのまま記述します。

于 2013-12-13T17:02:52.233 に答える