私はliquibaseを使用してスキーマを管理しています。私にはたくさんの挿入文があります。プライマリID番号をハードコードしました。すべての挿入が完了したら、シーケンス値をテーブルのプライマリキーの最大値よりも1だけ大きくする必要があります。このために、私は以下のようにPL/SQLを書いた。私はそれはまだ0Oracle:シーケンスを特定の値に設定する
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;
/
をインクリメントselect ArtifactTypes_id_seq.nextval from dual;
を実行したときただし、DBMS_OUTPUTは、次のような出力を提供します - 私は行方不明です Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 71"
何か?私は間違ったやり方をしていますか? 日本語:SQLDeveloperからこれらのSQLを実行しようとしました。あなたが例えば、初期値を代入する句で始まるを使用し、それを順序を削除してから再作成する必要があり