Oracle - Zurücksetzen einer Sequenz
- So setzen Sie eine Sequenz-SEQ zurück, die mit dem Befehl erstellt wurde:
CREATE SEQUENCE seq;
- Suchen Sie nach dem aktuellen Wert mit dem Befehl:
SEQ.CURRVAL SELECT FROM DUAL;
- Ändern Sie dann die Reihenfolge, indem Sie die Option hinzufügen, indem Sie den Inkrementierungswert VAL (aktueller Wert - 1) hinzufügen, um die Reihenfolge auf 1 zurückzusetzen:
ALTER SEQUENCE SEQ INCREMENT von -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 um 1;
Beispiel:
SQL> create sequence seq; Sequenz erstellt. SQL> wähle seq.nextval aus dual; NEXTVAL ---------- 1 SQL> wähle seq.nextval aus dual; NEXTVAL ---------- 2 SQL> wähle seq.nextval aus dual; NEXTVAL ---------- 3 SQL> wähle seq.currval aus dual; CURRVAL ---------- 3 SQL> Sequenzfolge inkrementieren um -2; // 2 = SEQ.CURRVAL-1 Sequenz geändert. SQL> wähle seq.nextval aus dual; NEXTVAL ---------- 1 SQL> Sequenzfolge um 1 erhöhen; Reihenfolge geändert.