10

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

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

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

4

8 に答える 8

11

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

ここに画像の説明を入力

于 2013-01-14T11:53:18.087 に答える
4

自動生成されるように列を変更するには、コードは次のとおりです。

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

ただし、列はすでに IDENTITY 属性で定義されている必要があります (このドキュメントに記載されています)。

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

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

于 2014-06-12T10:10:03.810 に答える
1

これをチェックして

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 構文

于 2013-01-14T10:09:34.633 に答える
1
ALTER TABLE ISSUERECIPT  ADD IRCODE INTEGER NOT NULL primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),

私はあなたのために物事を行うことができると思います

于 2013-01-14T10:05:12.957 に答える
0

ALTER TABLE tbl ADD id INT PRIMARY KEY AUTO_INCREMENT;

于 2013-01-14T10:00:59.900 に答える
-1

これを試して :

alter table ISSUERECIPT modify column IRCODE int(4) auto_increment
于 2013-01-14T09:57:44.753 に答える