既存のシーケンスの現在値を進めるサンプルです。
オラクルのシーケンスは、既に作成されたシーケンスの現在値を直接更新する方法がありません。なので、以下のようにして現在値を進める必要があります。
サンプル
例)既存のシーケンス「seq01」の現在値を一時的に5000進める手順
1 2 3 4 5 6 7 8 |
--①シーケンスの増分値を5000に更新する ALTER SEQUENCE seq01 INCREMENT BY 5000 NOCACHE; --②シーケンスを発番する SELECT seq01.NEXTVAL FROM dual; --③一時的に増やしたシーケンスの増分値を元に戻す ALTER SEQUENCE seq01 INCREMENT BY 1 NOCACHE; |
以下、実行例です。
- 実行例
- ★シーケンスの現在値を確認する SQL> SELECT seq01.CURRVAL FROM dual; CURRVAL ---------- 103 ★シーケンスの増分値を5000にする SQL> ALTER SEQUENCE seq01 INCREMENT BY 5000 NOCACHE; 順序が変更されました。 ★シーケンスを発番する SQL> SELECT seq01.NEXTVAL FROM dual; NEXTVAL ---------- 5103 ★シーケンスの増分値を元に戻す SQL> ALTER SEQUENCE seq01 INCREMENT BY 1 NOCACHE; 順序が変更されました。 ★シーケンスを発番してみる SQL> SELECT seq01.NEXTVAL FROM dual; NEXTVAL ---------- 5104
解説
- シーケンスの再作成が出来ない場合は、上記方法をお試しください。