私はOracle 11gにヒキガエルを使用しています.UI(ユーザーインターフェイス)を使用してみましalter
た。sequence
を変更したいcurrval
。
私はこのエラーでブロックします:
ORA-04007: MINVALUEは現在の値を超えることはできません
シーケンスの疑似列の値を直接変更することはありません。currval
その値は、シーケンスの疑似列を参照するたびに変更されますnextval
。パラメータalter sequence
を変更するステートメントを発行したいようです。minvalue
minval
シーケンスの現在の値が、変更しようとしている値より小さい場合、エラーが発生します。それを行うには、少なくとも 2 つのオプションがあります。
minvalue
パラメータの新しい値でシーケンスを完全に再作成しますincremet by
し、次の値を生成し、minval
パラメータを変更してから、increment by
値を元に戻します。次に例を示します。
create sequence seq
increment by 1
minvalue 1
sequence SEQ created.
-- trying to change minvalue
alter sequence seq
minvalue 5
SQL Error: ORA-04007: MINVALUE cannot be made to exceed the current value
select seq.nextval
from dual
NEXTVAL
------------
1
-- alter increment by
alter sequence seq
increment by 4
select seq.nextval
from dual
NEXTVAL
----------
5
-- altering minvalue
alter sequence seq
minvalue 5
sequence SEQ altered.
-- change increment by to 1 as it was before
alter sequence seq
increment by 1
sequence SEQ altered.