FirebirdSQL logo

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.