## CREATE SEQUENCE-Anweisung (create_sequence_statement)

Die CREATE SEQUENCE-Anweisung (create_sequence_statement) definiert ein Datenbankobjekt, das ganzzahlige Werte liefert (Nummerngenerator). Dieses Objekt wird im folgenden Sequenz genannt.

### Syntax

<create_sequence_statement> ::= CREATE SEQUENCE [<schema_name>.]<sequence_name>
[INCREMENT BY <integer>] [START WITH <integer>]
[MAXVALUE <integer> | NOMAXVALUE] [MINVALUE <integer> | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE <unsigned_integer> | NOCACHE]
[ORDER | NOORDER]

### Beispiele

SQL-Tutorial, Nummerngeneratoren für Tabellen

### Erläuterung

Die optionalen Angaben nach dem Sequenznamen sequence_name können in beliebiger Reihenfolge erfolgen.

Der aktuelle Benutzer muss ein RESOURCE-Benutzer oder Datenbankadministrator (DBA-Benutzer) sein und wird Eigentümer der Sequenz. Wenn kein Schema schema_name angegeben ist, wird das aktuelle Schema angenommen.

Die Sequenz wird dem implizit ermittelten oder dem explizit angegebenen Schema zugeordnet. Der aktuelle Benutzer muss das CREATEIN-Privileg für dieses Schema besitzen. Der Sequenzname muss sich von den Namen aller bereits in dem Schema existierenden Sequenzen unterscheiden.

Die von der Sequenz erzeugten ganzzahligen Werte können zur Vergabe von Schlüsselwerten benutzt werden.

#### INCREMENT BY

Definiert die Differenz des nächsten Sequenzwertes vom zuletzt vergebenen Wert. Ein negativer Wert von INCREMENT BY erzeugt eine fallende Sequenz. Wenn kein Wert angegeben wird, wird der Wert 1 verwendet.

#### START WITH

Definiert den ersten Sequenzwert. Wenn kein Wert angegeben wird, wird der für MAXVALUE angegebene Wert bzw. -1 bei fallenden und der für MINVALUE angegebene Wert bzw. 1 bei aufsteigenden Sequenzen benutzt.

#### MINVALUE | MAXVALUE

· MINVALUE: Definiert den kleinsten Wert, der durch die Sequenz erzeugt wird. Ist kein Wert für MINVALUE angegeben, wird bei negativem Wert für INCREMENT BY der kleinste mit 38 Ziffern darstellbare ganzzahlige Wert benutzt, bei positivem Wert für INCREMENT BY der Wert 1.

· MAXVALUE: Definiert den größten Wert, der durch die Sequenz erzeugt wird. Ist kein Wert für MAXVALUE angegeben, wird bei negativem Wert für INCREMENT BY der Wert -1 benutzt, bei positivem Wert für INCREMENT BY der größte mit 38 Ziffern darstellbare ganzzahlige Wert.

#### CYCLE | NOCYCLE

Ist weder CYCLE noch NOCYCLE angegeben, wird NOCYCLE angenommen.

· CYCLE: Bei aufsteigenden Sequenzen wird nach der Vergabe von MAXVALUE der Wert MINVALUE geliefert. Bei fallenden Sequenzen wird nach der Vergabe von MINVALUE der Wert MAXVALUE geliefert.

· NOCYCLE: Die Anforderung eines Sequenzwertes scheitert, wenn bereits das Ende der Sequenz erreicht wurde, d.h. wenn MAXVALUE bei aufsteigenden bzw. MINVALUE bei fallenden Sequenzen vergeben wurde

#### CACHE | NOCACHE

Ist weder CACHE noch NOCACHE angegeben, wird CACHE 20 angenommen.

· CACHE: Der Zugriff auf die Sequenz kann beschleunigt werden, weil die definierte Anzahl von Sequenzwerten bereits voraus im Speicher gehalten wird.

· NOCACHE: Es werden keine Sequenzwerte im voraus bestimmt.

#### ORDER | NOORDER

Die Angabe von ORDER bzw. NOORDER hat keinerlei Auswirkungen.

Die Spezifikation der Sequenzwerte kann mittels CURRVAL und NEXTVAL (Spezifikation von Werten) erfolgen. So können Sie den aktuellen Zählerstand erfragen oder erhöhen.