2016-05-16 8 views
-1

Iすでに120のレコードに移入され、私はSQLクエリの下にしようとしている既存の製品のテーブルがあります。既存のテーブル - SQL

ALTER TABLE product ADD product_id 
    INT PRIMARY KEY AUTO_INCREMENT 

しかし、それは私にエラーが与えられています:

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

+0

あなたはどのクエリを試しましたか? – hjpotter92

+0

ALTER TABLEプロダクトADD product_id INT PRIMARY KEY AUTO_INCREMENT; –

+0

'ALTER TABLE product追加列product_id INT PRIMARY KEY AUTO_INCREMENT;' –

答えて

-1

テーブルごとに1つの自動インクリメントフィールドしか存在できません。しかし、自動増分フィールドに基づいて計算フィールドを持つことができます。または、フロントエンドコードまたはトリガーによってシーケンスを管理するintフィールドを持つことができます。また、sequenceをSQL Serverで使用することもできます。

CREATE SEQUENCE MySequence START WITH 100; 

CREATE TABLE MyTable 
(
    RealIdentity INT IDENTITY(1,1), 
    RandomCol NVARCHAR(100), 
    FakeIdentity INT DEFAULT NEXT VALUE FOR MySequence 
); 

UPDATE - MySQLのウェイ

私はちょうどあなたの質問は、MySQL用tagedされていることに気づきました。上記の答えはMS SQLです。 MySQLで同じことをする方法は次のとおりです。

How do I create a sequence in MySQL?

MySQL equivalent of Oracle's SEQUENCE.NEXTVAL

0

友達 あなたはMSSQLでこれを実行しようとした場合、あなたのスクリプトはこれになります。 は、あなたのテーブルが

create table product 
(
name varchar(20), 
product_type varchar(20) 
) 

を下回っていると仮定して、あなたが名前が自動インクリメント主キーとPRODUCT_IDという列を追加したいその後、この表では、いくつかのレコードを入力したとします。次に、このスクリプトを使用します。

alter table product add product_ID int primary key identity(1,1) 

これはあなたのために十分に役立つとします。ここで

0

  • の周りには、テーブルを参照して、もう一度あなたが行われ、主キー

としてこの新しく追加された列を作る自動インクリメント

  • で単純な列を作成する仕事です!

    :) GuyのおかげでStackoverflowにいません

  • 関連する問題