我正在使用liquibase管理我的模式。我有一堆插入語句。我已經硬編碼的主要ID號碼。在完成所有插入操作後,我想將序列值更改爲比表中主鍵的最大值多1。爲此我寫了一個PL/SQL,如下所示。但是,當我執行select ArtifactTypes_id_seq.nextval from dual;
仍增加0.1Oracle:將序列設置爲特定值
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
sequence_id NUMBER;
BEGIN
SELECT NVL(MAX(idArtifactType), 0) + 1 INTO sequence_id FROM ArtifactTypes;
EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id;
EXECUTE IMMEDIATE 'SELECT ArtifactTypes_id_seq.nextval FROM dual';
EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 1';
DBMS_OUTPUT.put_line('Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id || '"');
END;
/
的DBMS_OUTPUT提供了以下輸出 - Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 71"
凡是我失蹤了呢?我做錯了嗎? 注意:我嘗試從SQLDeveloper執行這些SQL。