【DB2】GENERATED ALWAYS AS IDENTITYの自動採番の開始値を指定する方法
自動採番する方法
テーブル生成時、列にGENERATED ALWAYS AS IDENTITY
を指定する。
(MySQLのAUTO_INCREMENTみたいなもの)
サンプルコード
CREATE TABLE SAMPLE_TABLE (
ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
NAME VARCHAR(10),
-- (後略)
);
自動採番の開始値を指定する方法
以下のクエリを実行する。
ALTER TABLE テーブル名 ALTER 列名 RESTART WITH 初期値;
サンプルコード
ALTER TABLE SAMPLE_TABLE ALTER ID RESTART WITH 1;
解説
GENERATED ALWAYS AS IDENTITY
を指定された列は、レコード追加時に自動的に連番が振られる。GENERATED ALWAYS AS IDENTITY
を指定された列には、 明示的に値をINSERTすることはできない。truncate table テーブル名 immidiate;
などでレコードを全件削除した後も自動採番は続いているので、また1から振りなおしたい時などに使う。