Nếu bạn có thể sử dụng PL / SQL, hãy thử (CHỈNH SỬA:Kết hợp đề xuất xlnt của Neil để bắt đầu ở giá trị cao hơn tiếp theo):
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;
Một điểm khác cần xem xét:Bằng cách đặt tham số CACHE thành 20, bạn có nguy cơ mất tới 19 giá trị trong trình tự của mình nếu cơ sở dữ liệu gặp sự cố. Giá trị CACHEd bị mất khi khởi động lại cơ sở dữ liệu. Trừ khi bạn thường xuyên đánh trúng chuỗi, hoặc bạn không quan tâm nhiều đến những khoảng trống, tôi sẽ đặt nó thành 1.
Một nit cuối cùng:các giá trị bạn đã chỉ định cho CACHE và INCREMENT BY là giá trị mặc định. Bạn có thể bỏ chúng đi và nhận được kết quả tương tự.