Oracle-Sequenzwert ohne Inkrementierung abrufen
Das Abrufen des aktuellen Werts einer Oracle-Sequenz ohne Inkrementierung kann durch die SELECT-Anweisung mit erreicht werden last_number-Spalte aus relevanten Datenbankansichten.
Um den Sequenzwert abzurufen, befolgen Sie diese Schritte Schritte:
- Identifizieren Sie den Sequenzbesitzer und den Namen.
- Führen Sie die folgende Abfrage aus und ersetzen Sie und entsprechend:
1 2 3 4 | SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>' ;
|
Nach dem Login kopieren
- Wenn sich die Sequenz in Ihrem Standardschema befindet, können Sie alternativ user_sequences verwenden:
1 2 3 | SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>' ;
|
Nach dem Login kopieren
Hinweis: Die Ansichten user_sequences, all_sequences und dba_sequences bieten verschiedene Sequenzen Metadaten.
Fortgeschrittene Technik (nicht empfohlen):
Obwohl nicht empfohlen, ist es möglich, dies zuverlässiger zu tun, indem eine Reihe von Operationen verwendet werden:
- Sequenzinkrementwert abrufen:
1 2 3 | SELECT increment_by I
FROM user_sequences
WHERE sequence_name = 'SEQ' ;
|
Nach dem Login kopieren
- Abrufen den Sequenzwert:
1 2 | SELECT seq.nextval S
FROM dual;
|
Nach dem Login kopieren
Nach dem Login kopieren
- Ändern Sie die Sequenz, um sie um den Inkrementwert zu dekrementieren:
1 2 | ALTER SEQUENCE seq
INCREMENT BY -1;
|
Nach dem Login kopieren
- Rufen Sie den Sequenzwert erneut ab ( dekrementiert):
1 2 | SELECT seq.nextval S
FROM dual;
|
Nach dem Login kopieren
Nach dem Login kopieren
- Setzen Sie die Sequenz auf das Original zurück inkrementieren:
1 2 | ALTER SEQUENCE seq
INCREMENT BY 1;
|
Nach dem Login kopieren
Achtung: Diese Technik kann Probleme verursachen, wenn mehrere Benutzer gleichzeitig auf die Sequenz zugreifen.
Das obige ist der detaillierte Inhalt vonWie kann ich den aktuellen Oracle-Sequenzwert abrufen, ohne ihn zu erhöhen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!