CREATE SEQUENCE

Semantics

schema

Spezifizieren Sie das Schema, das die Sequenz enthalten soll. Wenn Sie schema weglassen, erstellt Oracle Database die Sequenz in Ihrem eigenen Schema.

Sequenz

Spezifizieren Sie den Namen der zu erstellenden Sequenz.

Wenn Sie keine der folgenden Klauseln angeben, erstellen Sie eine aufsteigende Sequenz, die mit 1 beginnt und um 1 erhöht wird, ohne Obergrenze. Wenn Sie nur INCREMENT BY -1 angeben, wird eine absteigende Sequenz erstellt, die mit -1 beginnt und ohne Untergrenze absteigt.

  • Um eine Sequenz zu erstellen, die ohne Begrenzung aufsteigt, lassen Sie bei aufsteigenden Sequenzen den Parameter MAXVALUE weg oder geben Sie NOMAXVALUE an. Für absteigende Sequenzen lassen Sie den Parameter MINVALUE weg oder geben Sie NOMINVALUE an.

  • Um eine Sequenz zu erstellen, die an einer vordefinierten Grenze stoppt, geben Sie für eine aufsteigende Sequenz einen Wert für den Parameter MAXVALUE an. Für eine absteigende Sequenz geben Sie einen Wert für den Parameter MINVALUE an. Geben Sie auch NOCYCLE an. Jeder Versuch, eine Sequenznummer zu generieren, wenn die Sequenz ihr Limit erreicht hat, führt zu einem Fehler.

  • Um eine Sequenz zu erstellen, die nach Erreichen eines vordefinierten Limits neu beginnt, geben Sie Werte für die Parameter MAXVALUE und MINVALUE an. Geben Sie auch CYCLE an. Wenn Sie MINVALUE nicht angeben, wird der Standardwert NOMINVALUE verwendet, der dem Wert 1 entspricht.

INCREMENT BY Geben Sie das Intervall zwischen den Sequenznummern an. Dieser ganzzahlige Wert kann eine beliebige positive oder negative ganze Zahl sein, darf aber nicht 0 sein. Dieser Wert kann 28 oder weniger Ziffern haben. Der Absolutwert dieses Wertes muss kleiner sein als die Differenz von MAXVALUE und MINVALUE. Ist dieser Wert negativ, so ist die Folge absteigend. Ist der Wert positiv, dann steigt die Folge aufwärts. Wenn Sie diese Klausel weglassen, ist das Intervall standardmäßig 1.

START WITH Geben Sie die erste zu erzeugende Sequenznummer an. Verwenden Sie diese Klausel, um eine aufsteigende Sequenz mit einem Wert zu beginnen, der größer als ihr Minimum ist, oder um eine absteigende Sequenz mit einem Wert zu beginnen, der kleiner als ihr Maximum ist. Bei aufsteigenden Sequenzen ist der Standardwert der Mindestwert der Sequenz. Für absteigende Sequenzen ist der Standardwert der Maximalwert der Sequenz. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben.

Hinweis:

Dieser Wert ist nicht notwendigerweise der Wert, auf den eine aufsteigende zyklische Sequenz nach Erreichen ihres Höchst- oder Mindestwerts zurückgeht.

MAXWERT Geben Sie den Höchstwert an, den die Sequenz erzeugen kann. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben. MAXVALUE muss gleich oder größer sein als START WITH und muss größer sein als MINVALUE.

NOMAXVALUE Geben Sie NOMAXVALUE an, um einen Höchstwert von 1027 für eine aufsteigende Sequenz oder -1 für eine absteigende Sequenz anzugeben. Dies ist der Standardwert.

MINVALUE Geben Sie den Mindestwert der Sequenz an. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben. MINVALUE muss kleiner oder gleich START WITH und kleiner als MAXVALUE sein.

NOMINVALUE Geben Sie NOMINVALUE an, um einen Mindestwert von 1 für eine aufsteigende Sequenz oder -1026 für eine absteigende Sequenz anzugeben. Dies ist die Standardeinstellung.

CYCLE Geben Sie CYCLE an, um anzugeben, dass die Sequenz nach Erreichen ihres Höchst- oder Mindestwerts weiterhin Werte erzeugt. Nachdem eine aufsteigende Sequenz ihren Maximalwert erreicht hat, erzeugt sie ihren Minimalwert. Nachdem eine absteigende Sequenz ihren Minimalwert erreicht hat, erzeugt sie ihren Maximalwert.

NOCYCLE Geben Sie NOCYCLE an, um anzugeben, dass die Sequenz nach Erreichen ihres Maximal- oder Minimalwerts keine weiteren Werte mehr erzeugen kann. Dies ist der Standardwert.

CACHE Geben Sie an, wie viele Werte der Sequenz die Datenbank im Voraus zuweist und für einen schnelleren Zugriff im Speicher hält. Dieser Ganzzahlwert kann 28 oder weniger Ziffern haben. Der Mindestwert für diesen Parameter ist 2. Bei Sequenzen, die einen Zyklus durchlaufen, muss dieser Wert kleiner sein als die Anzahl der Werte im Zyklus. Sie können nicht mehr Werte zwischenspeichern, als in einen bestimmten Zyklus von Sequenznummern passen. Daher muss der maximal zulässige Wert für CACHE kleiner sein als der Wert, der durch die folgende Formel bestimmt wird:

(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

Wenn ein Systemfehler auftritt, gehen alle zwischengespeicherten Sequenzwerte, die nicht in bestätigten DML-Anweisungen verwendet wurden, verloren. Die potenzielle Anzahl der verlorenen Werte entspricht dem Wert des Parameters CACHE.

Hinweis:

Oracle empfiehlt die Verwendung der Einstellung CACHE, um die Leistung zu verbessern, wenn Sie Sequenzen in einer Oracle Real Application Clusters-Umgebung verwenden.

NOCACHE Geben Sie NOCACHE an, um anzugeben, dass die Werte der Sequenz nicht vorab zugewiesen werden. Wenn Sie sowohl CACHE als auch NOCACHE weglassen, speichert die Datenbank standardmäßig 20 Sequenznummern.

ORDER Geben Sie ORDER an, um zu gewährleisten, dass die Sequenznummern in der Reihenfolge der Anforderung erzeugt werden. Diese Klausel ist nützlich, wenn Sie die Sequenznummern als Zeitstempel verwenden. Für Sequenzen, die zur Generierung von Primärschlüsseln verwendet werden, ist die Gewährleistung der Reihenfolge in der Regel nicht wichtig.

ORDER ist nur notwendig, um eine geordnete Generierung zu gewährleisten, wenn Sie Oracle Real Application Clusters verwenden. Wenn Sie den exklusiven Modus verwenden, werden die Sequenznummern immer in der Reihenfolge generiert.

NOORDER Geben Sie NOORDER an, wenn Sie nicht garantieren möchten, dass die Sequenznummern in der Reihenfolge der Anfrage generiert werden. Dies ist die Standardeinstellung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.