CREATE SEQUENCE

Semantica

schema

Specifica lo schema per contenere la sequenza. Se ometti schema, allora Oracle Database crea la sequenza nel tuo schema.

sequenza

Specifica il nome della sequenza da creare.

Se non specifichi nessuna delle seguenti clausole, allora crei una sequenza ascendente che inizia con 1 e aumenta di 1 senza limite superiore. Specificando solo INCREMENT BY -1 si crea una sequenza discendente che inizia con -1 e diminuisce senza limite inferiore.

  • Per creare una sequenza che aumenta senza limiti, per le sequenze ascendenti, omettere il parametro MAXVALUE o specificare NOMAXVALUE. Per le sequenze discendenti, omettete il parametro MINVALUE o specificate NOMINVALUE.

  • Per creare una sequenza che si ferma a un limite predefinito, per una sequenza ascendente, specificate un valore per il parametro MAXVALUE. Per una sequenza discendente, specificate un valore per il parametro MINVALUE. Specificate anche NOCYCLE. Qualsiasi tentativo di generare un numero di sequenza una volta che la sequenza ha raggiunto il suo limite risulta in un errore.

  • Per creare una sequenza che riparte dopo aver raggiunto un limite predefinito, specificare valori per entrambi i parametri MAXVALUE e MINVALUE. Specifica anche CYCLE. Se non specifichi MINVALUE, allora il valore predefinito è NOMINVALUE, che è il valore 1.

INCREMENT BY Specifica l’intervallo tra i numeri della sequenza. Questo valore intero può essere qualsiasi numero intero positivo o negativo, ma non può essere 0. Questo valore può avere 28 o meno cifre. L’assoluto di questo valore deve essere inferiore alla differenza tra MAXVALUE e MINVALUE. Se questo valore è negativo, allora la sequenza scende. Se il valore è positivo, allora la sequenza sale. Se omettete questa clausola, allora l’intervallo di default è 1.

START WITH Specifica il primo numero di sequenza da generare. Usate questa clausola per iniziare una sequenza ascendente ad un valore maggiore del suo minimo o per iniziare una sequenza discendente ad un valore inferiore al suo massimo. Per le sequenze ascendenti, il valore predefinito è il valore minimo della sequenza. Per le sequenze discendenti, il valore predefinito è il valore massimo della sequenza. Questo valore intero può avere 28 o meno cifre.

Nota:

Questo valore non è necessariamente il valore a cui una sequenza ascendente ciclica dopo aver raggiunto il suo valore massimo o minimo.

MAXVALUE Specificare il valore massimo che la sequenza può generare. Questo valore intero può avere 28 o meno cifre. MAXVALUE deve essere uguale o maggiore di START WITH e deve essere maggiore di MINVALUE.

NOMAXVALUE Specificare NOMAXVALUE per indicare un valore massimo di 1027 per una sequenza ascendente o -1 per una sequenza discendente. Questo è il default.

MINVALUE Specificare il valore minimo della sequenza. Questo valore intero può avere 28 o meno cifre. MINVALUE deve essere minore o uguale a START WITH e deve essere inferiore a MAXVALUE.

NOMINVALUE Specificare NOMINVALUE per indicare un valore minimo di 1 per una sequenza ascendente o -1026 per una sequenza discendente. Questo è il default.

CYCLE Specificare CYCLE per indicare che la sequenza continua a generare valori dopo aver raggiunto il suo valore massimo o minimo. Dopo che una sequenza ascendente raggiunge il suo valore massimo, genera il suo valore minimo. Dopo che una sequenza discendente raggiunge il suo minimo, genera il suo valore massimo.

NOCYCLE Specificare NOCYCLE per indicare che la sequenza non può generare più valori dopo aver raggiunto il suo valore massimo o minimo. Questo è il default.

CACHE Specifica quanti valori della sequenza il database prealloca e tiene in memoria per un accesso più veloce. Questo valore intero può avere 28 o meno cifre. Il valore minimo per questo parametro è 2. Per le sequenze che vanno in ciclo, questo valore deve essere inferiore al numero di valori nel ciclo. Non puoi mettere in cache più valori di quelli che entrano in un dato ciclo di numeri di sequenza. Pertanto, il valore massimo consentito per CACHE deve essere inferiore al valore determinato dalla seguente formula:

(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

Se si verifica un guasto del sistema, allora tutti i valori di sequenza memorizzati nella cache che non sono stati utilizzati in istruzioni DML impegnate vengono persi. Il numero potenziale di valori persi è uguale al valore del parametro CACHE.

Nota:

Oracle raccomanda di usare l’impostazione CACHE per migliorare le prestazioni se si usano sequenze in un ambiente Oracle Real Application Clusters.

NOCACHE Specificare NOCACHE per indicare che i valori della sequenza non sono preallocati. Se si omette sia CACHE che NOCACHE, allora il database memorizza 20 numeri di sequenza per default.

ORDER Specificare ORDER per garantire che i numeri di sequenza siano generati in ordine di richiesta. Questa clausola è utile se stai usando i numeri di sequenza come timestamp. Garantire l’ordine di solito non è importante per le sequenze usate per generare le chiavi primarie.

ORDER è necessario solo per garantire la generazione ordinata se state usando Oracle Real Application Clusters. Se si sta usando la modalità esclusiva, allora i numeri di sequenza sono sempre generati in ordine.

NOORDER Specificare NOORDER se non si vuole garantire che i numeri di sequenza siano generati in ordine di richiesta. Questo è il valore predefinito.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.