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 "Comando. Ecco come lo fai:

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.