Oracleでシーケンスの現在値の変更
1. nextvalで進める方法
次の値を確認すると値が進むので必要なだけ nextval
で進める。
例えば100進めたい場合は次のようにする。
select <SEQ_OBJECT>.nextval from dual connect by level <= 100
値を進めることは出来ても戻すことは出来ない。また、大量に進る場合は時間がかかる。 |
2. インクリメント値を一時的に変更する方法
一端、進めたい値をインクリメント値に設定して nextval
を取得
例えば100進めたい場合は次のようにする。
alter sequence <SEQ_OBJECT> increment by 100;
select <SEQ_OBJECT>.nextval from dual;
その後、すぐに元のインクリメント値に戻す。
alter sequence <SEQ_OBJECT> increment by 1;
元に戻す前に他で nextval が行われないことと、インクリメント値を元に戻すのを忘れないようにする。
|