おとぎみち

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

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 の値まで入っていることになる。

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