Stávající sloupec nemůžete přeměnit na sloupec skutečné identity, ale můžete získat podobné chování, když jako výchozí pro sloupec použijete sekvenci.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Poté použijte:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
aby sloupec používal sekvenci jako výchozí hodnotu. Pokud chcete, můžete použít default on null
přepíše explicitní null
hodnota zadaná během vkládání (toto je tak blízko, jak se můžete dostat ke sloupci identity)
Pokud chcete skutečný identity, budete muset vypustit aktuální id
a poté jej znovu přidejte jako sloupec identity:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Všimněte si, že byste neměli přidávat start with 4
v tomto případě tak, aby všechny řádky dostaly nové jedinečné číslo