Suche…


Syntax

  • SEQUENCE SCHEMA.SEQUENCE erstellen START MIT INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLE INTEGER | NOCYCLE INTEGER | CACHE | NOCACHE | BESTELLUNG | NOODER}

Parameter

Parameter Einzelheiten
Schema Schemaname
inkrementieren um Intervall zwischen den Zahlen
beginnen mit erste Nummer benötigt
Maximalwert Maximalwert für die Sequenz
Nomaxwert Maximalwert ist voreingestellt
Minwert Mindestwert für die Sequenz
Nennwert Mindestwert ist voreingestellt
Zyklus Nach Erreichen dieses Wertes auf den Start zurücksetzen
nocycle Standard
Zwischenspeicher Vorbelegungsgrenze
Nocache Standard
Auftrag Garantiere die Reihenfolge der Zahlen
keine Bestellung Standard

Sequenz erstellen: Beispiel

Zweck

Verwenden Sie die Anweisung CREATE SEQUENCE, um eine Sequenz zu erstellen, bei der es sich um ein Datenbankobjekt handelt, aus dem mehrere Benutzer eindeutige Ganzzahlen generieren können. Sie können Sequenzen verwenden, um automatisch Primärschlüsselwerte zu generieren.

Wenn eine Sequenznummer generiert wird, wird die Sequenz unabhängig von der Transaktion erhöht oder rückgängig gemacht. Wenn zwei Benutzer gleichzeitig dieselbe Sequenz inkrementieren, können die Sequenznummern, die jeder Benutzer erhält, Lücken aufweisen, da Sequenznummern vom anderen Benutzer generiert werden. Ein Benutzer kann niemals die von einem anderen Benutzer generierte Sequenznummer erhalten. Nachdem ein Sequenzwert von einem Benutzer generiert wurde, kann dieser Benutzer weiterhin auf diesen Wert zugreifen, unabhängig davon, ob die Sequenz von einem anderen Benutzer inkrementiert wird.

Sequenznummern werden unabhängig von Tabellen generiert, sodass dieselbe Sequenz für eine oder für mehrere Tabellen verwendet werden kann. Es kann vorkommen, dass einzelne Sequenznummern übersprungen werden, da sie in einer Transaktion generiert und verwendet wurden, die letztendlich zurückgesetzt wurde. Darüber hinaus erkennt ein einzelner Benutzer möglicherweise nicht, dass andere Benutzer aus derselben Sequenz zeichnen.

Nachdem eine Sequenz erstellt wurde, können Sie auf deren Werte in SQL-Anweisungen mit der CURRVAL-Pseudospalte zugreifen, die den aktuellen Wert der Sequenz zurückgibt, oder der NEXTVAL-Pseudospalte, die die Sequenz erhöht und den neuen Wert zurückgibt.

Voraussetzungen

Um eine Sequenz in Ihrem eigenen Schema zu erstellen, müssen Sie über das CREATE SEQUENCE-Systemprivileg verfügen.

Um eine Sequenz im Schema eines anderen Benutzers zu erstellen, müssen Sie über das Systemprivileg CREATE ANY SEQUENCE verfügen.

Erstellen einer Sequenz: Beispiel Die folgende Anweisung erstellt die Sequenz customers_seq im Beispielschema oe. Diese Reihenfolge kann verwendet werden, um Kunden-ID-Nummern anzugeben, wenn der Kundentabelle Zeilen hinzugefügt werden.

CREATE SEQUENCE customers_seq
START WITH     1000
INCREMENT BY   1
NOCACHE
NOCYCLE;

Die erste Referenz auf customers_seq.nextval gibt 1000 zurück. Die zweite Referenz gibt 1001 zurück. Jede nachfolgende Referenz gibt einen Wert zurück, der um 1 größer ist als die vorherige.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow