Sie können eine vorhandene Spalte nicht in eine echte Identitätsspalte umwandeln, aber Sie können ein ähnliches Verhalten erzielen, indem Sie eine Sequenz als Standard für die Spalte verwenden.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
Verwenden Sie dann:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
damit die Spalte die Sequenz als Standardwert verwendet. Wenn Sie möchten, können Sie default on null
verwenden um eine explizite null
zu überschreiben Wert, der während des Einfügens bereitgestellt wird (dies ist so nah wie möglich an einer Identitätsspalte)
Wenn Sie ein echtes wollen Identitätsspalte müssen Sie die aktuelle id
löschen -Spalte und fügen Sie sie dann erneut als Identitätsspalte hinzu:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Beachten Sie, dass Sie start with 4
nicht hinzufügen sollten in diesem Fall, damit alle Zeilen eine neue eindeutige Nummer erhalten