Oracle -Sequenzbefehl erstellen

Oracle -Sequenzbefehl erstellen
Datenbanksequenzen sind nützliche Datenbankobjekte, die es der Datenbank ermöglichen, automatisch eine Sequenz von Werten basierend auf einem gegebenen Startwert, dem Inkrementschritt und dem Maximalwert zu generieren.

Sie werden häufig auf Datenbanksequenzen stoßen, die als Primärschlüssel für eine Datenbankspalte verwendet werden. Obwohl Sie den integrierten Primärschlüsselgenerator verwenden können, bieten Sequenzen unterschiedliche Eigenschaften, mit denen Sie anpassen können, wie die Werte in die Datenbank hinzugefügt werden.

In diesem Tutorial werden Sie übermittelt, wie Sie den Befehl create sequence in der oracle -Datenbank verwenden, um eine neue Sequenz zu definieren.

Oracle erstellen Sequenzanweisung

Wir verwenden die Anweisung für die Erstellung von Sequence in Oracle, um eine neue Oracle -Sequenz zu erstellen. Wir können die Syntax dieser Anweisung wie unten gezeigt ausdrücken:

Erstellen Sie Sequence Sequence_Name
[Inkrement von n]
[Beginnen Sie mit n]
[MaxValue N | NomaxValue]
[Minvalue N | Nominalue]
[Zyklus | Nocycle]
[Cache N | Nocache]
[Bestellung | KEINE BESTELLUNG]

Die Erklärung akzeptiert die folgenden Optionen:

  1. Sequence_Name - Dies gibt den Namen der Sequenz an, die Sie erstellen möchten.
  2. Increment by N - Mit der Increment By N -Klausel können Sie den Wert angeben, mit dem die Sequenz zunimmt. Standardmäßig erhöht sich die Sequenz vom vorherigen Wert um den Faktor 1.
  3. Beginnen Sie mit n - Mit dieser Option können Sie den Wert angeben, mit dem die Sequenz startet. In ähnlicher Weise wird der Standardwert auf 1 gesetzt.
  4. MaxValue N - Mit dem MaxValue -Parameter können Sie den Maximalwert einstellen, den die Sequenz erzeugen kann. Der Standardwert wird auf 10^27-1 gesetzt.
  5. MINVALUE N - In diesem Fall definiert dieser Parameter den durch die Sequenz erzeugten Mindestwert. Der Standardwert wird auf -10^27+1 eingestellt.
  6. Zyklus - Der Zyklusparameter definiert, ob die Sequenz die generierten Werte maximal zyklieren sollte. Wenn festgelegt, beginnt die Sequenz vom Mindestwert, sobald sie den definierten Maximalwert erreicht hat. Um den Sequenzzyklus zu verhindern, verwenden Sie die Nocycle -Option. Standardmäßig wird die Sequenz die Werte nicht radeln.
  7. Cache N - Diese Klausel gibt die Anzahl der Sequenznummern an, die im Speicher geprediert und gespeichert oder für einen schnelleren Zugriff zwischengespeichert werden. Standardmäßig werden keine Werte zwischengespeichert.
  8. Reihenfolge - Der Bestellparameter gibt an, ob die Abfolge von Zahlen in der Reihenfolge der Anforderung generiert wird. Wenn diese Klausel nicht angegeben ist, ist das Standardverhalten No Order.

Oracle -Sequenzbeispiel erstellen

Im folgenden Beispiel erstellen wir eine Sequenz namens looper_sequence, die vom Wert von 2 beginnt und 100 mit einem Intervall von 2 erreicht. Die Sequenz radelt auch die Werte, sobald sie den Maximalwert erreicht.

Erstellen Sie Sequenz looper_sequence
Inkrement um 2
Beginnen Sie mit 2
Minwert 2
MaxValue 100
Zyklus
Nocache;

Sobald wir die Sequenz definiert haben, können wir die Werte aus der Sequenz mit der Funktion nxtval () abrufen.

Wählen Sie looper_sequence.NextVal von Dual;

Da dies das erste Mal ist, dass die Sequenz ausgeführt wird, sollte der erste Wert wie unten gezeigt zurückgeben:

Wenn wir die Sequenz in derselben Sitzung erneut ausführen, sollten wir den nächsten Wert erhalten, wie unten gezeigt:

Dies sollte für jede Iteration fortgesetzt werden, bis wir den Maximalwert erreichen, und die Sequenz zum Start von vorne erzwingen.

Oracle erhalten den aktuellen Wert

Um den aktuellen Wert in der Sequenz zu erhalten, können Sie die unten gezeigte Currval () -Funktion verwenden:

Wählen Sie looper_sequence.Currval von Dual;

Ergebnis:

Abschluss

In diesem Tutorial haben Sie erfahren. Sie haben auch gelernt, wie man die Funktionen nxtval () und currval () verwendet, um die nächsten bzw. aktuellen Werte der Sequenz zu erhalten.