Oracle - Reinicializar uma sequência

Faça uma pergunta

Para reinicializar uma sequência SEQ crie através do comando:
CREATE SEQUENCE SEQ;


Basta ver o seu valor atual, através do comando:
SELECT SEQ.CURRVAL FROM DUAL;


Em seguida, modificar a sequência adicionando a opção "increment by", agregando em valor VAL -(valor atual - 1) para reinicializar a sequência em 1 :
ALTER SEQUENCE SEQ INCREMENT by -VAL;


Depois, executar o comando que vai reinicializar a sequência:
SELECT SEQ.NEXTVAL FROM DUAL;


Enfim, reestabelecer o incremento da sequência da sequência:
ALTER SEQUENCE SEQ INCREMENT by 1;


Exemplo :
SQL> CREATE sequence seq;    

Sequência criada.    

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    

Sequência alterada.    

SQL> select seq.nextval from dual;    

   NEXTVAL    
----------    
         1    

SQL> alter sequence seq increment by 1;    

Sequência alterada.



Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM

Veja também