SQL SEQUENCE et NEXTVAL | |
Oracle utilise le concept de SEQUENCE pour créer des valeurs numériques de clé primaire lorsque nous ajoutons des lignes de données à une table. Alors que la population de clés primaires numériques pour MySQL et SQL Server est liée à des tables individuelles, dans Oracle, la construction SEQUENCE est créée séparément et n'est pas liée à une table spécifique. SyntaxeLa syntaxe pour créer une séquence dans Oracle est la suivante :CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value} est la valeur de départ de la séquence, et {interval} est l'intervalle entre les nombres de séquence consécutifs. Les deux champs [START WITH] et [INCREMENT BY] sont facultatifs. S'ils ne sont pas spécifiés, la valeur par défaut pour {Initial_Value} et {interval} est tous deux de 1. ExempleSupposons que nous ayons une table avec la structure suivante : Table USER_TABLE
et que nous voulions utiliser la séquence suivante pour générer le userid : CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
Nous spécifions que nous voulons utiliser la séquence et la fonction NEXTVAL dans les déclarations INSERT INTO dans l'ordre suivant : INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); Maintenant, la table a les deux lignes suivantes: Table USER_TABLE
Il est à noter qu'une séquence est indépendante d'une table. En d'autres termes, une séquence peut être utilisée pour générer des valeurs de clé primaire pour plusieurs tables, et la séquence continue même si elle est appliquée à une table différente. Donc, disons, par exemple, que nous avons une deuxième table, Table NEW_USERS, qui a la même structure que la table USER_TABLE, et nous émettons la commande SQL suivante après avoir exécuté les deux commandes SQL ci-dessus : INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
La table NEW_USER aura la ligne suivante : Table NEW_USER
Le Userid est 15 car c'est la valeur suivante après 10.
Copyright © 2024 1keydata.com Tous droits réservés |