Vous ne pouvez pas transformer une colonne existante en une véritable colonne d'identité, mais vous pouvez obtenir un comportement similaire en utilisant une séquence comme valeur par défaut pour la colonne.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Utilisez ensuite :
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
pour que la colonne utilise la séquence comme valeur par défaut. Si vous le souhaitez, vous pouvez utiliser default on null
pour écraser un null
explicite valeur fournie lors de l'insertion (c'est aussi proche que possible d'une colonne d'identité)
Si vous voulez un vrai colonne d'identité, vous devrez supprimer le id
actuel colonne, puis rajoutez-la en tant que colonne d'identité :
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Notez que vous ne devez pas ajouter le start with 4
dans ce cas pour que toutes les lignes obtiennent un nouveau numéro unique