FirebirdSQL logo
 FILTEREXCEPTION 

Qui peut créer une séquence ?

L’instruction CREATE SEQUENCE (CREATE GENERATOR) peut être exécutée :

  • Administrateurs.

  • Utilisateurs avec le privilège CREATE SEQUENCE (CREATE GENERATOR).

L’utilisateur qui a créé la séquence devient le propriétaire de la séquence.

Exemples

Example 1. Création d’une séquence

Crée une séquence EMP_NO_GEN avec une valeur initiale de 0 et des incréments égaux à un.

CREATE SEQUENCE EMP_NO_GEN;
Example 2. Création d’une séquence

Crée une séquence EMP_NO_GEN avec une valeur initiale de 5 et des incréments égaux à un.

CREATE SEQUENCE EMP_NO_GEN START WITH 5;
Example 3. Création d’une séquence

Créez une séquence EMP_NO_GEN avec une valeur initiale de 1 et des incréments de 10.

CREATE SEQUENCE EMP_NO_GEN INCREMENT BY 10;
Example 4. Création d’une séquence

Créez une séquence EMP_NO_GEN avec une valeur de départ de 5 et des incréments de 10.

CREATE SEQUENCE EMP_NO_GEN START WITH 5 INCREMENT BY 10;

ALTER SEQUENCE

affectation

Modification de la séquence (générateur).

Disponible en

DSQL, ESQL

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

seq_name

Le nom de la séquence (générateur).

newvalue

Nouvelle valeur de la séquence (oscillateur). Nombre entier de 64 bits dans la plage -263 à 263 - 1

increment

Augmentation de l’étape. Ne peut pas être égal à "0".

L’opérateur ALTER SEQUENCE fixe la valeur de la séquence ou du générateur à une valeur spécifiée et/ou change la valeur de l’incrément.

La phrase RESTART WITH' vous permet de définir une valeur de séquence. La phrase `RESTART peut être utilisée indépendamment (sans WITH) pour redémarrer la valeur de la séquence à partir de la valeur où la génération de la valeur a commencé ou le redémarrage précédent a été lancé.

Warning

Une utilisation imprudente de l’opérateur ALTER SEQUENCE (changement de la valeur d’une séquence ou d’un générateur) peut entraîner une violation de l’intégrité logique des données.

La phrase "INCREMENT [BY]" vous permet de modifier le pas de séquence incrémentielle pour l’opérateur "NEXT VALUES FOR".

Note

La modification de la valeur de l’incrément est une fonctionnalité qui prend effet pour chaque requête exécutée après la validation du changement. Les procédures qui sont appelées pour la première fois après une modification de l’incrément utiliseront la nouvelle valeur si elles contiennent des instructions `NEXT VALUE FOR'. Les procédures qui sont déjà en cours d’exécution ne seront pas affectées car elles sont mises en cache. Les procédures qui utilisent `NEXT VALUE FOR' ne doivent pas être recompilées pour voir le nouvel incrément, mais si elles sont déjà en cours d’exécution ou chargées, il n’y a aucun effet.

Qui peut modifier la séquence ?

L’instruction ALTER SEQUENCE (ALTER GENERATOR) peut être exécutée :

  • administrators.

  • Le propriétaire de la séquence (générateur) ;

  • Utilisateurs ayant le privilège de `ALTER ANY SEQUENCE' (`ALTER ANY GENERATOR').

Exemples

Example 1. Modification de la séquence

Définissez la séquence EMP_NO_GEN à 145.

ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
Example 2. Modification de la séquence

Réinitialise la valeur de la séquence à la valeur qui a été définie lors de la création de la séquence (ou lorsque la valeur a été définie précédemment).

ALTER SEQUENCE EMP_NO_GEN RESTART;
Example 3. Modification de la séquence

Modifier la valeur incrémentale de la séquence EMP_NO_GEN.

ALTER SEQUENCE EMP_NO_GEN INCREMENT BY 10;

CREATE OR ALTER SEQUENCE

affectation

Créer une nouvelle séquence ou modifier une séquence existante (générateur).

Disponible en

DSQL, ESQL

Syntaxe
CREATE OR ALTER {SEQUENCE | GENERATOR} seq_name
[{START WITH start_value | RESTART}]
[INCREMENT [BY] increment]
Table 1. Paramètres de l’opérateur CREATE OR ALTER 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.

Si la séquence n’existe pas, elle sera créée. Une séquence déjà existante sera modifiée, en conservant les dépendances de la séquence existante.

Important

L’instruction CREATE OR ALTER SEQUENCE exige qu’au moins une des phrases facultatives soit spécifiée.

Exemples

Example 1. Création d’une nouvelle séquence ou modification d’une séquence existante
CREATE OR ALTER SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 1;

DROP SEQUENCE

affectation

Suppression de la séquence (générateur).

Disponible en

DSQL, ESQL

Syntaxe
DROP {SEQUENCE | GENERATOR} seq_name
Table 1. Paramètres de l’opérateur DROP SEQUENCE
Paramètre Description

seq_name

Le nom de la séquence (générateur).

L’opérateur DROP SEQUENCE supprime une séquence existante (générateur). Les mots SEQUENCE et GENERATOR sont synonymes. Vous pouvez utiliser l’un ou l’autre, mais il est recommandé d’utiliser SEQUENCE. S’il existe des dépendances pour une séquence (générateur) existante, la suppression ne sera pas effectuée.

Qui peut supprimer un générateur ?

L’instruction DROP SEQUENCE (DROP GENERATOR) peut être exécutée :

  • Administrateurs

  • Le propriétaire de la séquence (générateur) ;

  • Les utilisateurs ayant le privilège DROP ANY SEQUENCE (DROP ANY GENERATOR).

Exemples

Example 1. Suppression de la séquence
DROP SEQUENCE EMP_NO_GEN;

RECREATE SEQUENCE

affectation

Créer ou recréer une séquence (générateur).

Disponible en

DSQL, ESQL

Syntaxe
RECREATE {SEQUENCE | GENERATOR} seq_name
  [START WITH start_value]
  [INCREMENT [BY] increment];
Table 1. Paramètres de l’opérateur RECREATE 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).

increment

Incrément d’étape. Entier de 4 octets.

L’opérateur RECREATE SEQUENCE crée ou recrée une séquence (générateur). Si une séquence portant ce nom existe déjà, l’opérateur RECREATE SEQUENCE tentera de la supprimer et de créer une nouvelle séquence. S’il existe des dépendances pour une séquence existante, l’opérateur RECREATE SEQUENCE ne sera pas exécuté.

Exemples

Example 1. Recréer une séquence
RECREATE SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 1;

SET GENERATOR

affectation

Règle la valeur de la séquence ou de l’oscillateur sur la valeur définie.

Disponible en

DSQL, ESQL

Syntaxe
SET GENERATOR seq_name TO new_val
Table 1. Paramètres de l’opérateur SET GENERATOR
Paramètre Description

seq_name

Le nom de la séquence (générateur).

new_val

Nouvelle valeur de la séquence (oscillateur). Un nombre entier de 64 bits dans la plage -263 . 263 - 1

L’opérateur SET GENERATOR fixe la valeur de la séquence ou du générateur à la valeur spécifiée.

Note

L’opérateur SET GENERATOR est considéré comme obsolète et a été abandonné par souci de rétrocompatibilité. Il est désormais recommandé d’utiliser l’opérateur ALTER SEQUENCE, conforme à la norme, à la place.

Une utilisation imprudente de l’opérateur SET GENERATOR (changement de la valeur d’une séquence ou d’un générateur) peut entraîner une perte d’intégrité des données logiques.

Qui peut changer la valeur du générateur ?

L’instruction SET GENERATOR peut être exécutée :

  • Administrateurs.

  • Le propriétaire de la séquence (générateur) ;

  • Utilisateurs avec le privilège ALTER ANY SEQUENCE (ALTER ANY GENERATOR).

Exemples

Example 1. Définition d’une valeur pour la séquence
SET GENERATOR EMP_NO_GEN TO 145;
Note

La même chose peut être faite en utilisant l’opérateur ALTER SEQUENCE

ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;