【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から振りなおしたい時などに使う。