Не существует простого способа сделать это с помощью «создать таблицу как выбор» (CTAS), потому что my_id
в новой таблице не будет столбцом идентификаторов, и вы не можете превратить существующие столбцы в идентификаторыстолбцы.
Один из способов состоит в том, чтобы явно создать таблицу со столбцом идентификаторов, скопировать данные и сбросить значение идентификатора:
create table bck_my_table
( my_id number generated by default as identity primary key
, process number
, information varchar2(100) );
insert into bck_my_table (my_id, process, information)
select my_id, process, information from my_table;
alter table bck_my_table
modify my_id generated always as identity start with limit value;
(Мы должны использовать generated by default
, чтобыобновляемый столбец, затем измените его на generated always
, чтобы предотвратить дальнейшие изменения.)
Другой способ - скопировать таблицу с использованием CTAS, затем добавить новый столбец идентификаторов, обновить его из старого my_id
, выполнить сбросиспользуя start with limit value
, удалите старый столбец и переименуйте новый.