Recherche…


Syntaxe

  • CREATE SEQUENCE SCHEMA.SEQUENCE {INCREMENT PAR ENTIER | COMMENCEZ AVEC INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLE INTEGER | NOCYCLE INTEGER | CACHE | NOCACHE | COMMANDE | NOODER}

Paramètres

Paramètre Détails
schéma nom du schéma
incrémenter de intervalle entre les nombres
Commencer avec premier numéro nécessaire
Valeur max Valeur maximale pour la séquence
nomaxvalue La valeur maximale est définie par défaut
minvalue valeur minimale pour la séquence
nominvalue la valeur minimum est par défaut
cycle Réinitialiser au début après avoir atteint cette valeur
nocycle Défaut
cache Limite de préallocation
nocache Défaut
commande Garantir l'ordre des nombres
pas de commande défaut

Créer une séquence: exemple

Objectif

Utilisez l'instruction CREATE SEQUENCE pour créer une séquence, qui est un objet de base de données à partir duquel plusieurs utilisateurs peuvent générer des entiers uniques. Vous pouvez utiliser des séquences pour générer automatiquement des valeurs de clé primaire.

Lorsqu'un numéro de séquence est généré, la séquence est incrémentée, indépendamment de la transaction validée ou annulée. Si deux utilisateurs incrémentent simultanément la même séquence, les numéros de séquence acquis par chaque utilisateur peuvent comporter des lacunes, car les numéros de séquence sont générés par l'autre utilisateur. Un utilisateur ne peut jamais acquérir le numéro de séquence généré par un autre utilisateur. Une fois qu'une valeur de séquence est générée par un utilisateur, cet utilisateur peut continuer à accéder à cette valeur, que la séquence soit incrémentée ou non par un autre utilisateur.

Les numéros de séquence sont générés indépendamment des tables, de sorte que la même séquence peut être utilisée pour une ou plusieurs tables. Il est possible que des numéros de séquence individuels semblent être ignorés, car ils ont été générés et utilisés dans une transaction qui a finalement été annulée. De plus, un seul utilisateur peut ne pas se rendre compte que d’autres utilisateurs utilisent la même séquence.

Une fois qu'une séquence est créée, vous pouvez accéder à ses valeurs dans les instructions SQL avec la pseudo-colonne CURRVAL, qui renvoie la valeur actuelle de la séquence ou la pseudo-colonne NEXTVAL, qui incrémente la séquence et renvoie la nouvelle valeur.

Conditions préalables

Pour créer une séquence dans votre propre schéma, vous devez disposer du privilège système CREATE SEQUENCE.

Pour créer une séquence dans le schéma d'un autre utilisateur, vous devez disposer du privilège système CREATE ANY SEQUENCE.

Création d'une séquence: Exemple L'instruction suivante crée la séquence customers_seq dans l'exemple de schéma oe. Cette séquence peut être utilisée pour fournir des numéros d'identification client lorsque des lignes sont ajoutées à la table clients.

CREATE SEQUENCE customers_seq
START WITH     1000
INCREMENT BY   1
NOCACHE
NOCYCLE;

La première référence à customers_seq.nextval renvoie 1000. La seconde renvoie 1001. Chaque référence ultérieure renverra une valeur 1 supérieure à la référence précédente.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow