FirebirdSQL logo
 FILTEREXCEPTION 

Une séquence ou un générateur est un objet de base de données conçu pour produire une valeur numérique unique. Le terme séquence est conforme à SQL. Auparavant, dans Interbase et Firebird, les séquences étaient appelées générateurs.

Quel que soit le dialecte de la base de données, les séquences (ou générateurs) sont toujours stockées sous forme de valeurs entières de 64 bits.

Caution

Si le client utilise le dialecte 1, le serveur transmet les valeurs de séquence tronquées à une valeur de 32 bits. Si la valeur de séquence est transmise à un champ ou à une variable de 32 bits, tant que la valeur de séquence actuelle n’a pas dépassé les limites pour un nombre de 32 bits, aucune erreur ne se produira. Lorsque la valeur de séquence dépasse cette plage, la base de données du dialecte 3 signalera une erreur, et la base de données du dialecte 1 tronquera silencieusement les valeurs, ce qui peut également entraîner une erreur — par exemple si le champ alimenté par le gène

Cette section décrit comment créer, modifier (définir une valeur de séquence) et supprimer des séquences.

CREATE SEQUENCE

affectation

Création d’une nouvelle séquence (générateur).

Disponible en

DSQL, ESQL

Syntaxe
CREATE {SEQUENCE | GENERATOR} seq_name
[START WITH start_value] [INCREMENT [BY] increment]
Table 1. Paramètres de l’opérateur CREATE SEQUENCE
Paramètre Description

seq_name

Le nom de la séquence (générateur). Peut contenir jusqu’à 63 caractères.

start_value

Valeur initiale de la séquence (générateur). La valeur par défaut est 1.

increment

Incrément d’étape. 4 octets entiers. La valeur par défaut est 1.

L’instruction CREATE SEQUENCE crée une nouvelle séquence. Les mots SEQUENCE et GENERATOR sont synonymes. Vous pouvez utiliser les deux, mais il est recommandé d’utiliser SEQUENCE.

Au moment de la création de la séquence, celle-ci est définie par la valeur spécifiée dans la phrase facultative Débuter avec moins la valeur d’incrémentation spécifiée dans la phrase Incrémenter [par].S’il n’y a pas de clause STARTING WITH, la séquence est fixée à 1. Ainsi, si la valeur de départ de la séquence est 100 et que l’incrément est de 10, la première valeur donnée par l’instruction NEXT VALUE FOR sera 100.

Note

Avant Firebird 4.0, la première valeur donnée par l’instruction NEXT VALUE FOR était 110.

La phrase optionnelle INCREMENT [BY] vous permet de définir le pas d’incrémentation pour l’opérateur NEXT VALUES FOR. Le pas d’incrémentation par défaut est de un. L’incrémentation ne peut pas être mise à zéro pour les séquences personnalisées. La valeur de la séquence est également modifiée en appelant la fonction GEN_ID, où le nom de la séquence et la valeur d’incrémentation, qui peut être différente de celle spécifiée dans la phrase INCREMENT BY, sont donnés comme paramètres.