SQL SEQUENCE en NEXTVAL | |
 |
SQL >
Geavanceerde SQL >
SEQUENCE en NEXTVAL
Oracle gebruikt het concept van SEQUENCE om numerieke primaire sleutelwaarden te genereren wanneer we rijen gegevens aan een tabel toevoegen. Terwijl de bevolking van numerieke primaire sleutels voor MySQL en SQL Server is gekoppeld aan individuele tabellen, wordt in Oracle de SEQUENCE-constructie apart gemaakt en is deze niet gekoppeld aan een individuele tabel. SyntaxisDe syntaxis voor het maken van een sequentie in Oracle is:CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value} is de startwaarde van de sequentie, en {interval} is het interval tussen opeenvolgende sequentienummers. Zowel [START WITH] als [INCREMENT BY] zijn optionele velden. Als ze niet worden gespecificeerd, zijn de standaardwaarden voor {Initial_Value} en {interval} beide 1. VoorbeeldLaten we aannemen dat we een tabel hebben met de volgende structuur: Tabel USER_TABLE
en dat we de volgende sequentie willen gebruiken om de gebruikers-ID te genereren: CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
We geven aan dat we de sequentie en de NEXTVAL-functie willen gebruiken in de INSERT INTO-statements in de volgende volgorde: INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); Nu heeft de tabel de volgende twee rijen: Tabel USER_TABLE
Het is de moeite waard op te merken dat een sequentie onafhankelijk is van een tabel. Met andere woorden, een sequentie kan worden gebruikt om primaire sleutelwaarden te genereren voor meerdere tabellen, en de sequentie gaat door, zelfs als deze wordt toegepast op een andere tabel. Laten we dus bijvoorbeeld zeggen dat we een tweede tabel hebben, Tabel NEW_USERS, die dezelfde structuur heeft als tabel USER_TABLE, en we geven het volgende SQL-commando uit na het uitvoeren van de twee bovenstaande SQL-commando's: INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
Tabel NEW_USER krijgt de volgende rij: Tabel NEW_USER
Userid is 15 omdat dat de volgende waarde is na 10.
Copyright © 2024 1keydata.com Alle rechten voorbehouden |