Definiert eine Sequenz, die zum Generieren eindeutiger Schlüsselwerte verwendet werden kann.
CREATE [ OR REPLACE ] SEQUENCE [ Eigentümer.] Sequenzname [ INCREMENT BY Ganzzahl_mit_Vorzeichen ] [ START WITH Ganzzahl_mit_Vorzeichen ] [ MINVALUE Ganzzahl_mit_Vorzeichen | NO MINVALUE ] [ MAXVALUE Ganzzahl_mit_Vorzeichen | NO MAXVALUE ] [ CACHE Ganzzahl | NO CACHE ] [ CYCLE | NO CYCLE ]
CREATE OR REPLACE SEQUENCE Erstellt eine Sequenz, die verwendet werden kann, um Primärschlüsselwerte zu erstellen, die über mehrere Tabellen hinweg eindeutig sind, und um Standardwerte für eine Tabelle zu generieren. Ein Fehler wird zurückgegeben, wenn Sie den Namen einer Sequenz angeben, die für den aktuellen Benutzer bereits vorhanden ist.
INCREMENT BY Definiert den Betrag, um den der nächste Sequenzwert gegenüber dem letzten zugeordneten Wert erhöht wird. Der Standardwert ist 1. Geben Sie einen negativen Wert an, um für eine absteigende Sequenz zu erstellen. Wenn der INCREMENT BY-Wert 0 ist, wird ein Fehler zurückgegeben.
START WITH Definiert den Startwert der Sequenz. Wenn Sie keinen Wert für die START WITH-Klausel angeben, wird MINVALUE für aufsteigende Sequenzen bzw. MAXVALUE für absteigende Sequenzen verwendet. Es wird ein Fehler gemeldet, wenn der START WITH-Wert außerhalb des durch MINVALUE und MAXVALUE angegebenen Bereichs liegt.
MINVALUE Definiert den kleinsten durch die Sequenz generierten Wert. Der Standardwert ist 1. Ein Fehler wird zurückgegeben, wenn MINVALUE größer ist als (2^63-1) oder kleiner als -(2^63-1). Außerdem wird ein Fehler zurückgegeben, wenn MINVALUE größer ist als MAXVALUE.
MAXVALUE Definiert den größten durch die Sequenz generierten Wert. Standardwert ist 2^63-1. Ein Fehler wird zurückgegeben, wenn MAXVALUE größer ist als 2^63-1 oder kleiner als -(2^63-1).
CACHE Gibt die Anzahl der vorab zugewiesenen Sequenzwerte an, die für einen schnelleren Zugriff im Speicher aufbewahrt werden. Wenn der Cache belegt ist, wird der Sequenzcache neu gefüllt und ein enstprechender Eintrag in das Transaktionslog geschrieben. Zur Checkpoint-Zeit wird der aktuelle Wert des Cache an die ISYSSEQUENCE-Systemtabelle weitergeleitet. Der Standardwert ist 100.
CYCLE Legt fest, ob weiter Werte generiert werden sollen, nachdem der Höchst- oder Mindestwert erreicht wurde.
Der Standardwert ist NOCYCLE, sodass ein Fehler zurückgegeben wird, sobald der Höchst- oder Mindestwert erreicht ist.
Eine Sequenz ist ein Datenbankobjekt, das die automatische Generierung von nummerischen Werten ermöglicht. Eine Sequenz ist nicht an eine bestimmte oder eindeutige Tabellenspalte gebunden, aber der Zugriff ist nur über die Tabellenspalte möglich, auf die sie angewendet wird.
Sequenzen können Werte auf eine der folgenden Arten generieren:
Sie steuern das Verhalten der Sequenz, wenn sie keine Werte mehr zur Verfügung hat, mithilfe der CYCLE-Klausel.
Wenn ein Sequenzwert erhöht wird und MAXVALUE überschreitet, wird MINVALUE als nächster Sequenzwert verwendet, sofern CYCLE angegeben ist. Wenn ein Sequenzwert vermindert wird und MINVALUE unterschreitet, wird MAXVALUE als nächster Sequenzwert verwendet, sofern CYCLE angegeben ist. Wenn CYCLE nicht angegeben ist, wird ein Fehler zurückgegeben.
Sequenzwerte können nicht mit Ansichten oder Definitionen von materialisierten Ansichten verwendet werden.
Weitere Hinweise dazu, wie Sie feststellen, ob eine Sequenz oder ein AUTOINCREMENT-Wert für die Werte in einer Spalte besser geeignet sein könnte, finden Sie unter Zwischen Sequenzen und Autoinkrement wählen.
RESOURCE-Datenbankberechtigung ist erforderlich.
Keine
SQL/2008 Sequenzen umfassen SQL/2008-Sprachenfunktion T176. SQL Anywhere lässt nicht die optionale Angabe des SEQUENCE-Datentyps zu. Dies kann mit einem CAST bei Verwendung der Sequenz erreicht werden.
Außerdem sind die folgenden Erweiterungen des Herstellers verfügbar:
Im folgenden Beispiel wird eine Sequenz mit dem Namen Test erstellt, die mit 4 beginnt, um 2 erhöht wird, nicht als Zyklus durchlaufen wird und 15 Werte gleichzeitig im Cache speichert:
CREATE SEQUENCE Test START WITH 4 INCREMENT BY 2 NO MAXVALUE NO CYCLE CACHE 15; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |