Oracle - Reinicializar uma sequência

Veja abaixo todo o procedimento que deve ser feito para reiniciar uma sequência no Oracle sem nenhum tipo de intercorrência.

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.
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. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Veja também
Este documento, intitulado 'Oracle - Reinicializar uma sequência', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!