Ако можете да използвате PL/SQL, опитайте (РЕДАКТИРАНЕ:Включва предложението на Нийл xlnt, за да започнете със следващата по-висока стойност):
SELECT 'CREATE SEQUENCE transaction_sequence MINVALUE 0 START WITH '||MAX(trans_seq_no)+1||' INCREMENT BY 1 CACHE 20'
INTO v_sql
FROM transaction_log;
EXECUTE IMMEDIATE v_sql;
Друг момент, който трябва да имате предвид:като зададете параметъра CACHE на 20, рискувате да загубите до 19 стойности във вашата последователност, ако базата данни изпадне. Кешираните стойности се губят при рестартиране на базата данни. Освен ако не удряте последователността много често или не ви пука толкова много за пропуските, бих я настроил на 1.
Една последна грешка:стойностите, които сте посочили за CACHE и INCREMENT BY, са по подразбиране. Можете да ги оставите изключени и да получите същия резултат.