Você não pode transformar uma coluna existente em uma coluna de identidade real, mas pode obter um comportamento semelhante usando uma sequência como padrão para a coluna.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Então use:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
para fazer com que a coluna use a sequência como valor padrão. Se você quiser, pode usar
default on null
para substituir um null
explícito valor fornecido durante a inserção (isso é o mais próximo que você pode obter de uma coluna de identidade) Se você quer um real coluna de identidade, você precisará descartar o
id
atual coluna e, em seguida, adicione-a novamente como uma coluna de identidade:alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Observe que você não deve adicionar o
start with 4
neste caso, para que todas as linhas recebam um novo número exclusivo