No puede convertir una columna existente en una columna de identidad real, pero puede obtener un comportamiento similar usando una secuencia como predeterminada para la columna.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Luego usa:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
para hacer que la columna use la secuencia como valor predeterminado. Si quieres puedes usar default on null
para sobrescribir un null
explícito valor proporcionado durante la inserción (esto es lo más cerca que puede llegar a una columna de identidad)
Si quieres un real columna de identidad, deberá eliminar el id
actual columna y luego vuelva a agregarla como una columna de identidad:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Tenga en cuenta que no debe agregar el start with 4
en este caso, para que todas las filas obtengan un nuevo número único