derby Netbeans でテーブルを作成しましたが、主キーである 1 ずつ自動インクリメントされる列を作成する必要があることに気付きました。どうすればそうできますか?次のコードを試しましたが、無駄でした。
ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;
テーブルをもう一度作成する必要がありますか、それとも他の方法で可能ですか?
別の解決策を見つけました。データベースから列を削除しました (vels4j に感謝します)。以下に示すように、netbeans derby UI から列をもう一度追加しました。
自動生成されるように列を変更するには、コードは次のとおりです。
ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;
ただし、列はすでに IDENTITY 属性で定義されている必要があります (このドキュメントに記載されています)。
ほとんどの場合 (あなたもそうだと仮定して)、主キー列は IDENTITY として設定されていません。したがって、列を IDENTITY に変更するつもりかもしれませんが、それは不可能です。
唯一の方法は、ここに書かれているように、テーブルを削除して再度作成することです。
これをチェックして
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 構文
ALTER TABLE ISSUERECIPT ADD IRCODE INTEGER NOT NULL primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
私はあなたのために物事を行うことができると思います
ALTER TABLE tbl ADD id INT PRIMARY KEY AUTO_INCREMENT;
これを試して :
alter table ISSUERECIPT modify column IRCODE int(4) auto_increment