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 の値まで入っていることになる。
こんなことをしなければならなくなった経緯はまた後日。