読者です 読者をやめる 読者になる 読者になる

おとぎみち

たまにマジメなおとぎブログ

Oracleシーケンスを変更

楽天ブックス

Oracleのシーケンスオブジェクトを変更する必要があったのでメモ。

シーケンスを確認

  select sequence_name, last_number
    from user_sequences
order by sequence_name

シーケンスを任意に変更

1. 変更後の値を n, 現在値を s として、n-sを計算

alter sequence [sequence_name] increment by n-s

2. 変更した状態で、1つカウントアップ

select sequence_name.nextval from dual

3. 値を元に戻す

alter sequence sequence_name increment by 1

※シーケンスはラストナンバーとして表示される値が、次に使用される値であることに注意。
 シーケンス確認SQLで表示された値が使用されるため、データは -1 の値まで入っていることになる。

こんなことをしなければならなくなった経緯はまた後日。