Wer kann eine Sequenz ändern?
Die Anweisung ALTER SEQUENCE
(ALTER GENERATOR
) kann ausgeführt werden durch:
-
Der Besitzer der Sequenz
-
Benutzer mit dem Privileg
ALTER ANY SEQUENCE
(ALTER ANY GENERATOR
)
Die Anweisung ALTER SEQUENCE
(ALTER GENERATOR
) kann ausgeführt werden durch:
Der Besitzer der Sequenz
Benutzer mit dem Privileg ALTER ANY SEQUENCE
(ALTER ANY GENERATOR
)
ALTER SEQUENCE
Den Wert der EMP_NO_GEN
-Sequenz so einstellen, dass der nächste Wert 145 ist.
ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
Zurücksetzen des Basiswerts der Sequenz EMP_NO_GEN
auf den in den Metadaten gespeicherten Initialwert
ALTER SEQUENCE EMP_NO_GEN RESTART;
Ändern der Schrittweite der Sequenz EMP_NO_GEN
auf 10
ALTER SEQUENCE EMP_NO_GEN INCREMENT BY 10;
CREATE OR ALTER SEQUENCE
Erstellen einer neuen oder Ändern einer bestehenden Sequenz
DSQL, ESQL
CREATE OR ALTER {SEQUENCE | GENERATOR} seq_name {RESTART | 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 |
Wenn die Sequenz nicht existiert, wird sie erstellt.Eine bestehende Sequenz wird geändert:
Wenn RESTART
angegeben ist, wird die Sequenz mit dem in den Metadaten gespeicherten Anfangswert neu gestartet
Wenn die START WITH
-Klausel angegeben ist, wird die Sequenz mit start_value neu gestartet, aber der start_value wird nicht gespeichert.Mit anderen Worten, es verhält sich wie RESTART WITH
in [fblangref40-ddl-sequence-alter-de].
Wenn die INCREMENT [BY]
-Klausel angegeben ist, wird increment als Inkrement in den Metadaten gespeichert und für nachfolgende Aufrufe von NEXT VALUE FOR
verwendet
SEQUENZ ERSTELLEN ODER ÄNDERN
EMP_NO_GEN
CREATE OR ALTER SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 1
DROP SEQUENCE
Löschen einer Sequenz SEQUENCE
(GENERATOR
)
DSQL, ESQL
DROP {SEQUENCE | GENERATOR} seq_name
Parameter | Beschreibung |
---|---|
seq_name |
Name der Sequenz (Generator).Diese kann aus bis zu 63 Zeichen bestehen |
Die Anweisungen DROP SEQUENCE
und DROP GENERATOR
sind äquivalent: beide löschen eine existierende Sequenz (Generator).Beides ist gültig, aber DROP SEQUENCE
wird empfohlen, da es im SQL-Standard definiert ist.
Die Anweisungen schlagen fehl, wenn die Sequenz (Generator) Abhängigkeiten hat.
Die Anweisung DROP SEQUENCE
(DROP GENERATOR
) kann ausgeführt werden durch:
Der Besitzer der Sequenz
Benutzer mit dem Privileg DROP ANY SEQUENCE
(DROP ANY GENERATOR
)
DROP SEQUENCE
EMP_NO_GEN
-Reihe:DROP SEQUENCE EMP_NO_GEN;
RECREATE SEQUENCE
Sequenz erstellen oder neu erstellen (Generator)
DSQL, ESQL
RECREATE {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 |
increment |
Erhöhen der Sequenz (bei Verwendung von |
Siehe [fblangref40-ddl-sequence-create-de] für die vollständige Syntax von CREATE SEQUENCE
und Beschreibungen zur Definition einer Sequenz und ihrer Optionen.
RECREATE SEQUENCE
erstellt oder erstellt eine Sequenz neu.Existiert bereits eine Sequenz mit diesem Namen, versucht die RECREATE SEQUENCE
-Anweisung, sie zu löschen und eine neue zu erstellen.Vorhandene Abhängigkeiten verhindern die Ausführung der Anweisung.
RECREATE SEQUENCE
EMP_NO_GEN
RECREATE SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 2;
SET GENERATOR
Setzen des aktuellen Werts einer Sequenz oder eines Generators auf einen bestimmten Wert
DSQL, ESQL
SET GENERATOR seq_name TO new_val
Parameter | Beschreibung |
---|---|
seq_name |
Name des Generators (Sequenz) |
new_val |
Neuer Sequenz-(Generator-)Wert.Eine 64-Bit-Ganzzahl von -2-63 bis 263-1. |
Die Anweisung SET GENERATOR
setzt den aktuellen Wert einer Sequenz oder eines Generators auf den angegebenen Wert.
Note
|
Obwohl |
SET GENERATOR
verwenden?Die SET GENERATOR
-Anweisung kann ausgeführt werden durch:
Der Besitzer der Sequenz (Generator)
Benutzer mit dem Privileg ALTER ANY SEQUENCE
(ALTER ANY GENERATOR
)
SET GENERATOR
EMP_NO_GEN
auf 145 setzen:SET GENERATOR EMP_NO_GEN TO 145;
Note
|
Ähnliche Effekte lassen sich mit [fblangref40-ddl-sequence-alter-de] erzielen: ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145 + increment; Der Wert von increment ist hier das aktuelle Inkrement der Sequenz.Wir müssen es hinzufügen, da |