वैसे यह बहुत कम वर्बोज़ नहीं हो सकता है, लेकिन यह PL/SQL एक विकल्प है:
begin
for r in (select *
from table_name
where pk_id = 'original_primary_key')
loop
r.pk := pk_seq.nextval;
r.fk := 'foreign-key';
insert into table_name values r;
end loop;
end;