Du kan ikke omdanne en eksisterende kolonne til en ægte identitetskolonne, men du kan få en lignende adfærd ved at bruge en sekvens som standard for kolonnen.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Brug derefter:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
for at få kolonnen til at bruge sekvensen som standardværdi. Hvis du vil, kan du bruge default on null
at overskrive en eksplicit null
værdi leveret under indsættelse (dette er så tæt som du kan komme på en identitetskolonne)
Hvis du vil have en rigtig identitetskolonnen skal du slette det aktuelle id
kolonne og derefter tilføje den igen som en identitetskolonne:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Bemærk, at du ikke skal tilføje start with 4
i dette tilfælde, så alle rækker får et nyt unikt nummer