SQL SEQUENCE e NEXTVAL | |
|
SQL >
SQL Avanzato >
SEQUENCE e NEXTVAL
Oracle utilizza il concetto di SEQUENCE per creare valori numerici di chiave primaria mentre aggiungiamo righe di dati a una tabella. Mentre la popolazione di chiavi primarie numeriche per MySQL e SQL Server è legata a singole tabelle, in Oracle la costruzione della SEQUENCE è creata separatamente e non è legata a una tabella specifica. SintassiLa sintassi per creare una sequenza in Oracle è la seguente:CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value} è il valore iniziale della sequenza, e {interval} è l'intervallo tra i numeri di sequenza consecutivi. Sia [START WITH] che [INCREMENT BY] sono campi opzionali. Se non vengono specificati, il valore predefinito per {Initial_Value} e {interval} è entrambi 1. EsempioSupponiamo di avere una tabella con la seguente struttura: Tabella USER_TABLE
e vogliamo utilizzare la seguente sequenza per generare il userid: CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
Specifichiamo che vogliamo utilizzare la sequenza e la funzione NEXTVAL nelle dichiarazioni INSERT INTO nell'ordine seguente: INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); Ora la tabella ha le seguenti due righe: Tabella USER_TABLE
È interessante notare che una sequenza è indipendente da una tabella. In altre parole, una sequenza può essere utilizzata per generare valori di chiave primaria per più tabelle, e la sequenza continua anche se viene applicata a una tabella diversa. Quindi, diciamo, ad esempio, che abbiamo una seconda tabella, Table NEW_USERS, che ha la stessa struttura della tabella USER_TABLE, e emettiamo il seguente comando SQL dopo aver eseguito i due comandi SQL sopra: INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
Tabella NEW_USER avrà la seguente riga: Tabella NEW_USER
Userid è 15 perché è il valore successivo dopo 10.
Copyright © 2024 1keydata.com Tutti i diritti riservati |