Ricerca…


Sintassi

  • CREATE SEQUENCE SCHEMA.SEQUENCE {INCREMENTO DI INTEGER | INIZIA CON INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLE INTEGER | NEGYCLE INTEGER | CACHE | NOCACHE | ORDINE | NOODER}

Parametri

Parametro Dettagli
schema nome dello schema
incrementa di intervallo tra i numeri
iniziare con il primo numero necessario
maxvalue Valore massimo per la sequenza
nomaxvalue Il valore massimo è predefinito
minvalue valore minimo per la sequenza
nominvalue il valore minimo è predefinito
ciclo Resetta all'inizio dopo aver raggiunto questo valore
NOCYCLE Predefinito
nascondiglio Limite di preallocazione
nocache Predefinito
ordine Garantire l'ordine dei numeri
Nessun ordine predefinito

Creazione di una sequenza: esempio

Scopo

Utilizzare l'istruzione CREATE SEQUENCE per creare una sequenza, che è un oggetto di database da cui più utenti possono generare numeri interi univoci. È possibile utilizzare le sequenze per generare automaticamente i valori delle chiavi primarie.

Quando viene generato un numero di sequenza, la sequenza viene incrementata, indipendentemente dalla transazione che sta eseguendo o ripristinando. Se due utenti incrementano contemporaneamente la stessa sequenza, allora i numeri di sequenza che ogni utente acquisisce potrebbero avere spazi vuoti, perché i numeri di sequenza vengono generati dall'altro utente. Un utente non può mai acquisire il numero di sequenza generato da un altro utente. Dopo che un valore di sequenza è stato generato da un utente, quell'utente può continuare ad accedere a quel valore indipendentemente dal fatto che la sequenza venga incrementata da un altro utente.

I numeri di sequenza vengono generati indipendentemente dalle tabelle, quindi la stessa sequenza può essere utilizzata per una o più tabelle. È possibile che i singoli numeri di sequenza sembrino saltati, perché sono stati generati e utilizzati in una transazione che alla fine è stata sottoposta a rollback. Inoltre, un singolo utente potrebbe non rendersi conto che altri utenti stanno attingendo dalla stessa sequenza.

Dopo aver creato una sequenza, è possibile accedere ai relativi valori nelle istruzioni SQL con la pseudocolonna CURRVAL, che restituisce il valore corrente della sequenza o la pseudocolonna NEXTVAL, che incrementa la sequenza e restituisce il nuovo valore.

Prerequisiti

Per creare una sequenza nel proprio schema, è necessario disporre del privilegio di sistema CREATE SEQUENCE.

Per creare una sequenza nello schema di un altro utente, è necessario disporre del privilegio di sistema CREA QUALSIASI SEQUENZA.

Creazione di una sequenza: Esempio La seguente istruzione crea la sequenza customers_seq nello schema di esempio oe. Questa sequenza può essere utilizzata per fornire numeri ID cliente quando vengono aggiunte righe alla tabella clienti.

CREATE SEQUENCE customers_seq
START WITH     1000
INCREMENT BY   1
NOCACHE
NOCYCLE;

Il primo riferimento a customers_seq.nextval restituisce 1000. Il secondo restituisce 1001. Ogni riferimento successivo restituirà un valore 1 maggiore del riferimento precedente.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow