IDENTITY列の追加または削除

既存の表を変更し、IDENTITY列を追加できます。既存のIDENTITY列を表から削除することもできます。

既存の表へのIDENTITY列の追加

ALTER TABLEを使用して、既存の表にIDENTITY列を追加します。

IDENTITY列のない表test_alterを作成します。

sql-> CREATE Table test_alter 
 (id INTEGER,
 name STRING, 
 PRIMARY KEY (id));
Statement completed successfully
sql->
ALTER TABLEを使用して、test_alterにIDENTITY列を追加します。また、関連付けられているnew_id IDENTITY列にいくつかのシーケンス・ジェネレータ(SG)属性を指定しますが、IDENTITY列をPRIMARY KEYとして使用しないでください。

sql-> ALTER Table Test_alter 
(ADD new_id INTEGER GENERATED ALWAYS AS IDENTITY 
 (START WITH 1 
 INCREMENT BY 2 
 MAXVALUE 100 
 CACHE 10 
 CYCLE));
Statement completed successfully
sql->

ノート:

表にIDENTITY列を追加するには、表が最上位レベルにある必要があります。IDENTITY列を、深く埋め込まれた構造型データ型の列として追加することはできません。列を追加しても、新しい列のデフォルト値(またはNULL)が移入される表内の既存の行には影響しません。

IDENTITY列の削除

IDENTITY列を削除して、そのようなフィールドが残らないようにするには、DROP id句を指定したALTER TABLEを使用します。
CREATE Table Test_alter (
id INTEGER GENERATED ALWAYS AS IDENTITY(
START WITH 1 
INCREMENT BY 2 
MAXVALUE 100 
CACHE 10 
CYCLE),
name STRING,
PRIMARY KEY (name));

ALTER TABLE Test_alter (DROP id);