0
Obrigado

Algumas palavras de agradecimento nunca são demais.

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.

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.

0 Comentário