برای تغییر مقدار جاری یک sequence، روشهای مختلفی وجود دارد که یکی از این روشها، استفاده از دستور ALTER SEQUENCE RESTART می باشد که در اوراکل 12cR2 ارائه شد. در ادامه متن، شیوه استفاده از این دستور را مشاهده خواهید کرد.
SQL> CREATE SEQUENCE usef.sequence1 START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 50000;
Sequence created.
SQL> DECLARE
var1 NUMBER;
BEGIN
FOR i IN 1..175
LOOP
select usef.sequence1.nextval into var1 from dual;
END LOOP;
END;
/
PL/SQL procedure successfully completed.
SQL> SELECT usef.sequence1.nextval FROM dual;
NEXTVAL
———-
176
دستور زیر، مقدار sequence را به مقدار اولیه اش برمی گرداند:
SQL> ALTER SEQUENCE usef.sequence1 RESTART;
Sequence altered.
SQL> SELECT usef.sequence1.nextval FROM dual;
NEXTVAL
———-
1
و با کمک دستور زیر، مقدار sequnce به یک عدد مشخصی تنظیم خواهد شد:
SQL> ALTER SEQUENCE usef.sequence1 RESTART START WITH 134;
Sequence altered.
SQL> SELECT usef.sequence1.nextval FROM dual;
NEXTVAL
———-
134
نکته: در نسخه های ماقبل 12cR2، برای کاهش مقدار جاری یک sequence ، می توان از دستور زیر استفاده کرد:
alter sequence seq_name increment by -n;
Comment (1)