Example create sequence
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Exemple DDL Oracle |
| Contexte | Générateur de nombres (séquence) |
| Voir aussi | Example create table · Example create user tables |
Une séquence Oracle est un objet de base de données qui génère des nombres uniques,
typiquement utilisés pour peupler des clés primaires numériques sans risque de collision entre
sessions concurrentes (contrairement à un simple MAX(id)+1, qui n'est pas
sûr en environnement multi-utilisateurs).
Script
-- Supprime la séquence si elle existe déjà (idempotence du script)
DROP SEQUENCE user_id_seq
/
CREATE SEQUENCE user_id_seq
INCREMENT BY 1
START WITH 1000
NOMAXVALUE
NOCYCLE
/
INCREMENT BY: pas d'incrémentation entre deux appels àNEXTVAL
(peut être négatif pour une séquence décroissante).
START WITH: valeur de départ.NOMAXVALUE: pas de plafond (par défaut 1027 pour une séquence
croissante) ; l'inverse est MAXVALUE n.
NOCYCLE: la séquence s'arrête (erreurORA-08004) une fois le
plafond atteint plutôt que de repartir de sa valeur minimale ; l'inverse est
CYCLE.
Utilisation classique dans un INSERT :
INSERT INTO users (id, name) VALUES (user_id_seq.NEXTVAL, 'exemple');
Voir aussi
- Example create table — tables typiquement peuplées via une séquence
- Example create user tables — schéma d'exemple utilisant une clé primaire numérique