0

誰でも私を助けることができます..

Sl.no (シリアル番号) を自動インクリメントせずにテーブルを作成しましたが、自動インクリメントしたいと思います。どうすればできますか?

4

4 に答える 4

0

シリアル番号列がテーブルの主キーではないようです。MySQL では、主キーではない列に AUTO_INCREMENT 属性を割り当てることはできません。

考えられる 2 つの行動方針を確認できます。

  • 他の列から主キー属性を削除し、シリアル番号に追加します。これは、シリアル番号列の値が一意である場合にのみ機能します。テーブルのセットアップ方法とシリアル番号フィールドのフォーマット方法によっては、テーブルに対する後続のクエリのパフォーマンスに悪影響を及ぼす可能性があります。

    ALTER TABLE [テーブル] DROP PRIMARY KEY;

    ALTER TABLE [テーブル] ADD [フィールド名] [整数型] NOT NULL AUTO_INCREMENT PRIMARY KEY;

  • テーブルのシリアル番号列の最後の(最高の)値を(プログラムで)選択し、挿入の前に手動で(プログラムで)インクリメントすることにより、プログラムで自動インクリメントを偽造できます。 (新記録。

于 2012-06-08T07:11:33.673 に答える
0

あなたはそれを変更する必要があります

alter table document modify column serial_id int(10) NOT NULL auto_increment
于 2012-06-08T06:43:27.320 に答える
0
ALTER TABLE
        mytable
MODIFY  id INT NOT NULL AUTO_INCREMENT;
于 2012-06-08T06:43:48.020 に答える
0

このドキュメントページ - ALTER TABLE Syntaxをご覧ください。まず、フィールドは整数で主キーでなければなりません。

このようなクエリを使用できます-

-- add AUTO_INCREMENT:
ALTER TABLE table
  CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT;

-- add primary key and AUTO_INCREMENT:
ALTER TABLE table
  CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT,
  ADD PRIMARY KEY (id);

また、MySQL GUI ツールの 1 つを使用することもできます。たとえば、dbForge Studio for MySQL のテーブル エディタ(無料の高速版) です。

于 2012-06-08T06:45:35.527 に答える