CREATE SEQUENCE
Erstellen einer neuen SEQUENCE
(GENERATOR
)
DSQL, ESQL
CREATE {SEQUENCE | GENERATOR} seq_name [START WITH start_value] [INCREMENT [BY] increment]
Parameter | Beschreibung |
---|---|
seq_name |
Name der Sequenz (Generator).Diese kann aus bis zu 63 Zeichen bestehen |
start_value |
Anfangswert der Sequenz.Standard ist 1. |
increment |
Erhöhen der Sequenz (bei Verwendung von |
Die Anweisungen CREATE SEQUENCE
und CREATE GENERATOR
sind synonym – beide erzeugen eine neue Sequenz.Beide können verwendet werden, aber CREATE SEQUENCE
wird empfohlen, da dies die im SQL-Standard definierte Syntax ist.
Wenn eine Sequenz erstellt wird, wird ihr aktueller Wert so gesetzt, dass der nächste Wert, der von NEXT VALUE FOR seq_name
erhalten wird, gleich start_value ist.Mit anderen Worten, der aktuelle Wert der Sequenz wird auf (start_value - increment
) gesetzt.Standardmäßig ist der start_value 1 (eins).
Mit der optionalen INCREMENT [BY]
-Klausel können Sie ein Inkrement für den Ausdruck NEXT VALUE FOR seq_name
angeben.Standardmäßig ist das Inkrement 1 (eins).Die Schrittweite kann nicht auf 0 (Null) gesetzt werden.Stattdessen kann die Funktion GEN_ID(seq_name, <step>)
aufgerufen werden, um die Serie um eine andere ganze Zahl zu “step”.Das durch INCREMENT [BY]
angegebene Inkrement wird nicht für GEN_ID
verwendet.
Note
|
Nicht standardmäßiges Verhalten bei negativen Inkrementen
Der SQL-Standard legt fest, dass Sequenzen mit negativem Inkrement beim Maximalwert der Sequenz (263 - 1) beginnen und herunterzählen sollen.Firebird tut dies nicht und beginnt stattdessen bei Dies kann sich in einer zukünftigen Firebird-Version ändern. |