Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → SEQUENCE (GENERATOR)
Firebird Home Firebird Home Zurück: FILTERFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: EXCEPTION

SEQUENCE (GENERATOR)

Inhaltsverzeichnis

CREATE SEQUENCE
ALTER SEQUENCE
SET GENERATOR
DROP SEQUENCE

Eine Sequenz oder ein Generator ist ein Datenbankobjekt, das verwendet wird, um eindeutige Zahlenwerte zu erhalten, um eine Reihe zu füllen. „Sequenz“ ist der SQL-konforme Begriff für das gleiche Ding, das in Firebird traditionell als „Generator“ bekannt ist. Beide Begriffe sind in Firebird implementiert. Für beide Terme ist eine Syntax implementiert.

Sequenzen (oder Generatoren) werden immer als 64-Bit-Ganzzahlen gespeichert, unabhängig vom SQL-Dialekt der Datenbank.

Achtung

Wenn ein Client mit Dialekt 1 verbunden ist, sendet der Server Sequenzwerte als 32-Bit-Ganzzahlen an ihn. Das Übergeben eines Sequenzwerts an ein 32-Bit-Feld oder eine Variable führt nicht zu Fehlern, solange der aktuelle Wert der Sequenz die Grenzen einer 32-Bit-Zahl nicht überschreitet. Sobald jedoch der Sequenzwert diese Grenze überschreitet, erzeugt die Datenbank in Dialekt 3 einen Fehler. Eine Datenbank in Dialekt 1 wird weiterhin die Werte beschneiden, was die Einzigartigkeit der Serie beeinträchtigt.

In diesem Abschnitt wird beschrieben, wie Sequenzen erstellt, festgelegt und gelöscht werden.

CREATE SEQUENCE

Benutzt für:  Erstellen einer neuen SEQUENCE (GENERATOR)

Verfügbar in: DSQL, ESQL

Syntax: 

CREATE {SEQUENCE | GENERATOR} seq_name
        

Tabelle 5.32. CREATE SEQUENCE | CREATE GENERATOR Statement-Parameter

Parameter Beschreibung
seq_name Name der Sequenz (Generator). Diese kann aus bis zu 31 Zeichen bestehen


Die Anweisungen CREATE SEQUENCE und CREATE GENERATOR sind Synonyme — beide erzeugen eine neue Sequenz. Jede kann verwendet werden, jedoch wird CREATE SEQUENCE empfohlen, sofern die normkonforme Metadatenverwaltung wichtig ist.

Wenn eine Sequenz erstellt wird, wird ihr Wert auf 0 gesetzt. Jedes Mal, wenn der NEXT VALUE FOR seq_name wird der Wert um 1 erhöht. Die GEN_ID(seq_name, <step>)-Funktion kann stattdessen aufgerufen werden, um die Reihe durch eine andere Ganzzahl zu erhöhen oder zu reduzieren.

Jeder Benutzer, der mit der Datenbank verbunden ist, kann eine Sequenz (Generator) erstellen.

Beispiele: 

  1. Erstellen der EMP_NO_GEN-Sequenz mittels CREATE SEQUENCE.
    CREATE SEQUENCE EMP_NO_GEN;
                
  2. Erstellen der EMP_NO_GEN-Sequenz mittels CREATE GENERATOR.
    CREATE GENERATOR EMP_NO_GEN;
                

Siehe auch:  ALTER SEQUENCE, SET GENERATOR, DROP SEQUENCE (GENERATOR), NEXT VALUE FOR, GEN_ID() function

ALTER SEQUENCE

Benutzt für:  Festlegen des Werts einer Sequenz oder eines Generators auf einen bestimmten Wert

Verfügbar in: DSQL

Syntax: 

ALTER SEQUENCE seq_name RESTART WITH new_val
        

Tabelle 5.33. ALTER SEQUENCE Statement-Parameter

Parameter Beschreibung
seq_name Name der Sequenz (Generator)
new_val Neuer Sequenzwert (Generatorwert). Eine 64-Bit-Ganzzahl von -2-63 bis 263-1.


Mit der Anweisung ALTER SEQUENCE wird der aktuelle Wert einer Sequenz oder eines Generators auf den angegebenen Wert gesetzt.

Warnung

Die falsche Verwendung der ALTER SEQUENCE-Anweisung (Ändern des aktuellen Werts der Sequenz oder des Generators) kann die logische Integrität von Daten beeinträchtigen.

Jeder an die Datenbank angeschlossene Benutzer kann den Sequenzwert (Generator) festlegen.

Beispiele: 

  1. Festlegen des Werts der EMP_NO_GEN-Sequenz auf 145.
    ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
                
  2. Das gleiche Prozedere unter Verwendung von SET GENERATOR:
    SET GENERATOR EMP_NO_GEN TO 145;
                

Siehe auch:  SET GENERATOR, CREATE SEQUENCE (GENERATOR), DROP SEQUENCE (GENERATOR), NEXT VALUE FOR, GEN_ID() function

SET GENERATOR

Benutzt für:  Festlegen des Werts einer Sequenz oder eines Generators auf einen bestimmten Wert

Verfügbar in: DSQL, ESQL

Syntax: 

SET GENERATOR seq_name TO new_val
        

Tabelle 5.34. SET GENERATOR Statement-Parameter

Parameter Beschreibung
seq_name Name des Generators (Sequenz)
new_val Neuer Sequenzwert (Generatorwert). Eine 64-Bit-Ganzzahl von -2-63 bis 263-1.


Mit der Anweisung SET GENERATOR wird der aktuelle Wert einer Sequenz oder eines Generators auf den angegebenen Wert gesetzt.

Anmerkung

Obwohl SET GENERATOR als veraltet gilt, wird es aus Gründen der Abwärtskompatibilität beibehalten. Die standardkonforme Anweisung ALTER SEQUENCE ist aktuell und wird empfohlen.

Jeder an die Datenbank angeschlossene Benutzer kann den Sequenzwert (Generator) festlegen.

Beispiele: 

  1. Einstellen des Werts der EMP_NO_GEN-Sequenz auf 145:
    SET GENERATOR EMP_NO_GEN TO 145;
                
  2. Das gleiche Prozedere unter Verwendung von ALTER SEQUENCE:
    ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
                

Siehe auch:  ALTER SEQUENCE, CREATE SEQUENCE (GENERATOR)

DROP SEQUENCE

Benutzt für:  Löschen von SEQUENCE (GENERATOR)

Verfügbar in: DSQL, ESQL

Syntax: 

DROP {SEQUENCE | GENERATOR} seq_name
        

Tabelle 5.35. DROP SEQUENCE | DROP GENERATOR Statement-Parameter

Parameter Beschreibung
seq_name Name der Sequenz (Generator). Kann aus bis zu 31 Zeichen bestehen.


Die Anweisungen DROP SEQUENCE und DROP GENERATOR sind gleichwertig: Beide löschen eine vorhandene Sequenz (Generator). Beide sind gültig, jedoch wird DROP SEQUENCE empfohlen.

Die Anweisungen schlagen fehl, wenn die Sequenz (Generator) Abhängigkeiten hat.

Jeder an die Datenbank angeschlossene Benutzer kann eine Sequenz (Generator) löschen.

Beispiele:  Löschen der EMP_NO_GEN-Sequenz:

DROP SEQUENCE EMP_NO_GEN;
            

Siehe auch:  CREATE SEQUENCE (GENERATOR, ALTER SEQUENCE, SET GENERATOR

Zurück: FILTERFirebird Documentation IndexNach oben: Statements der Data Definition (DDL)Weiter: EXCEPTION
Firebird Documentation IndexFirebird 2.5 SprachreferenzStatements der Data Definition (DDL) → SEQUENCE (GENERATOR)