sql >> データベース >  >> RDS >> Oracle

シーケンスを特定の値にリセットします

    負の増分を使用して、シーケンスをより低い値にリセットできます。このスクリプト(これはPL / SQLブロックバージョンです)は、9999より大きいシーケンス値で問題なく機能します):

    declare
     currval pls_integer;
     diff pls_integer;
    begin
      select SQ_USER_ID.nextval into currval from dual;
      dbms_output.put_line('value before alter: ' || currval);
      diff := 99999 - currval;
      dbms_output.put_line('diff: ' || diff);
      execute immediate ' alter sequence SQ_USER_ID INCREMENT BY ' ||  diff || 'nocache';
      select SQ_USER_ID.nextval into currval from dual;
      dbms_output.put_line('value after alter: ' || currval);
      execute immediate 'alter sequence SQ_USER_ID INCREMENT BY 1  cache 20';
    end;
    



    1. 発生したXIDの履歴書0:不明

    2. NULL ONNULLINPUTを使用してUDFのパフォーマンスを向上させる

    3. 挿入と更新の両方のMySQLFireトリガー

    4. MySQLで複合一意キーのインデックスが作成されていますか? -DBMS