Zurücksetzen einer Sequenz in Oracle

Letzte Aktualisierung am 21. Juli 2020 um 04:37 Uhr von David Webb.

Es ist möglich, eine Sequenz in Oracle zurückzusetzen. Das Unternehmen stellt für diese Aufgabe keinen vorgefertigten Befehl zur Verfügung. Es ist jedoch möglich, es zurückzusetzen, indem Sie die folgenden Anweisungen befolgen.


So setzen Sie eine Sequenz zurück

So setzen Sie eine mit dem Befehl erstellte Sequenz-SEQ zurück:

CREATE SEQUENCE seq;

Suchen Sie nach dem aktuellen Wert über den folgenden Befehl:

SEQ.CURRVAL SELECT FROM DUAL;

Ändern Sie dann die Sequenz, indem Sie die Option hinzufügen und den Inkrementwert VAL (aktueller Wert – 1) hinzufügen, um die Sequenz auf 1 zurückzusetzen:

ALTER SEQUENCE SEQ INCREMENT by -VAL;

Führen Sie dann den Befehl aus, der die Sequenz zurücksetzt:

SEQ.NEXTVAL SELECT FROM DUAL;

So stellen Sie das Inkrement der Sequenz wieder her:

ALTER SEQUENCE SEQ INCREMENT by 1; 

Beispiel:


SQL> create sequence seq;   

Sequence created.

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

Sequence altered.

SQL> select seq.nextval from dual;

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

SQL> alter sequence seq increment by 1;

Sequence altered.