DB2 - Sequenze
Questo capitolo introduce al concetto di sequenza, creazione di sequenza, visualizzazione della sequenza e rilascio di esse.
introduzione
Una sequenza è una funzione software che genera numeri interi in ordine crescente o decrescente, all'interno di un intervallo definito, per generare la chiave primaria e coordinare altre chiavi nella tabella. Si utilizza la sequenza per i numeri interi disponibili, ad esempio per Employee_id o Transaction_id. Una sequenza può supportare i tipi di dati SMALLINT, BIGINT, INTEGER e DECIMAL. Una sequenza può essere condivisa tra più applicazioni. Una sequenza viene incrementata o decrementata indipendentemente dalle transazioni.
Una sequenza viene creata dall'istruzione CREATE SEQUENCE.
Tipi di sequenze
Sono disponibili due tipi di sequenze:
NEXTVAL: Restituisce un valore incrementato per un numero di sequenza.
PREVIOUS VALUE: Restituisce il valore generato di recente.
Parametri delle sequenze
I seguenti parametri vengono utilizzati per le sequenze:
Data type: Questo è il tipo di dati del valore incrementato restituito. (SMALLINT, BIGINT, INTEGER, NUMBER, DOUBLE)
START WITH: Il valore di riferimento con cui inizia la sequenza.
MINVALUE: Un valore minimo con cui iniziare una sequenza.
MAXVALUE: Un valore massimo per una sequenza.
INCREMENT BY: valore del passo in base al quale viene incrementata una sequenza.
Sequence cycling: la clausola CYCLE provoca la generazione ripetuta della sequenza. La generazione della sequenza viene condotta facendo riferimento al valore restituito, che viene memorizzato nel database dalla precedente generazione della sequenza.
Creazione di una sequenza
È possibile creare una sequenza utilizzando la seguente sintassi:
Syntax:
db2 create sequence <seq_name>
Example: [Per creare una nuova sequenza con il nome "sales1_seq" e valori crescenti da 1]
db2 create sequence sales1_seq as int start
with 1 increment by 1
Visualizzazione delle sequenze
È possibile visualizzare una sequenza utilizzando la sintassi indicata di seguito:
Syntax:
db2 value <previous/next> value for <seq_name>
Example: [Per vedere l'elenco dei valori aggiornati precedenti nella sequenza "sales1_seq"]
db2 values previous value for sales1_seq
Output:
1
-----------
4
1 record(s) selected.
Eliminare la sequenza
Per rimuovere la sequenza, è necessario utilizzare "DROP SEQUENCE
Syntax:
db2 drop sequence <seq_name>>
Example: [Per eliminare la sequenza "sales1_seq" dal database]
db2 drop sequence sales1_seq
Output:
DB20000I The SQL command completed successfully.