既存の列を実際のID列に変換することはできませんが、列のデフォルトとしてシーケンスを使用することで、同様の動作を得ることができます。
create sequence seq_tmp_identity_id
start with 4
increment by 1;
次に、以下を使用します:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
列がデフォルト値としてシーケンスを使用するようにします。必要に応じて、default on null
を使用できます 明示的なnull
を上書きする 挿入時に指定された値(これは、ID列にできるだけ近い値です)
本物が必要な場合 現在のid
を削除する必要があるID列 列を作成してから、ID列として再度追加します:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
start with 4
を追加しないでください。 この場合、すべての行が新しい一意の番号を取得するようにします