web-dev-qa-db-ja.com

ダービーの自動インクリメントでテーブルの列を1だけ変更する

私はderby Netbeansでテーブルを作成しましたが、列を1ずつ自動インクリメントする必要があることに気付きました主キーです。どうすればできますか?次のコードを試してみましたが、無駄でした。

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

テーブルをもう一度作成する必要がありますか、それとも他の方法で可能ですか?

10
Nitesh Verma

別の解決策を見つけたので、データベースから列を削除し(vels4jに感謝)、次のようにnetbeans derby UIからもう一度列を追加しました。

enter image description here

10
Nitesh Verma

自動生成されるように列を変更するには、コードは

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

ただし、列は既にIDENTITY属性で定義されている必要があります(この documentation で記述されているとおり)。

ほとんどの場合(あなたも同じだと仮定します)、主キー列はIDENTITYとして設定されません。したがって、列をIDENTITYに変更することもできますが、それは不可能です。

here と書かれているように、唯一の方法はテーブルを削除して再作成することです。

4
FaizFizy

ALTER TABLE tbl ADD id INT PRIMARY KEY AUTO_INCREMENT;

1
Naveen Bangwal
ALTER TABLE ISSUERECIPT  ADD IRCODE INTEGER NOT NULL primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),

私はあなたのために何かをすることができると思います

1
arvin_codeHunk

これをチェックして

ALTER TABLE ISSUERECIPT 
ALTER IRCODE INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);

テーブルが空の場合は、これを試してください

ALTER TABLE DROP  PRIMARY KEY your_primaryKeyContrainName ; 
ALTER TABLE ISSUERECIPT DROP COLUMN IRCODE ;
ALTER TABLE ISSUERECIPT ADD COLUMN 
IRCODE PRIMARY KEY INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);

関連項目:Derby ALTER TABLE構文

1
vels4j