Не можете да превърнете съществуваща колона в истинска колона за идентичност, но можете да получите подобно поведение, като използвате последователност като по подразбиране за колоната.
create sequence seq_tmp_identity_id
start with 4
increment by 1;
След това използвайте:
alter table tmp_identity
modify id
default seq_tmp_identity_id.nextval;
за да накарате колоната да използва последователността като стойност по подразбиране. Ако искате, можете да използвате default on null
за презаписване на изричен null
стойност, предоставена по време на вмъкване (това е възможно най-близо до колона за самоличност)
Ако желаете истинска колона за идентичност ще трябва да премахнете текущия id
и след това го добавете отново като колона за самоличност:
alter table tmp_identity drop column id;
alter table tmp_identity
add id number(38)
generated always as identity;
Имайте предвид, че не трябва да добавяте start with 4
в този случай, така че всички редове да получат нов уникален номер