Pour réinitialiser un séquence SEQ crée à travers la commande :
CREATE SEQUENCE SEQ;
Il suffit de voir sa valeur actuelle via la commande :
SELECT SEQ.CURRVAL FROM DUAL;
Ensuite modifier la séquence en injectant l'option increment by en ajoutant en valeur VAL -(la valeur actuelle - 1) pour réinitialiser la séquence à 1 :
ALTER SEQUENCE SEQ INCREMENT by -VAL;
Ensuite lancer la commande qui va réinitialiser la séquence :
SELECT SEQ.NEXTVAL FROM DUAL;
Enfin rétablir lincrement de la séquence de la séquence :
ALTER SEQUENCE SEQ INCREMENT by 1;
Exemple :
SQL> CREATE sequence seq;
Séquence créée.
SQL> SELECT seq.nextval from dual;
NEXTVAL
----------
1
SQL> select seq.nextval from dual;
NEXTVAL
----------
2
SQL> select seq.nextval from dual;
NEXTVAL
----------
3
SQL> select seq.currval from dual;
CURRVAL
----------
3
SQL> alter sequence seq increment by -2; // 2=SEQ.CURRVAL-1
Séquence modifiée.
SQL> select seq.nextval from dual;
NEXTVAL
----------
1
SQL> alter sequence seq increment by 1;
Séquence modifiée.