Come impostare un valore di sequenza successiva in Oracle

November 4

Come impostare un valore di sequenza successiva in Oracle


I programmatori possono creare chiavi primarie uniche per una tabella in un database Oracle con l'inserimento di una sequenza nel database e assegnare la chiave utilizzando il pseudeocolumn NEXTVAL. NEXTVAL recupera il numero successivo di una sequenza predefinita. Le sequenze sono oggetti di database utilizzati per generare numeri sequenziali unici. Gli utenti o programmatori devono avere privilegi nello schema in cui le sequenze sono memorizzati in ordine di usarle. I numeri in sequenza possono essere usati solo una volta.

istruzione

Utilizzando nextval per recuperare il numero sequenziale successivo

1 Aprire l'editor PL / SQL o una stored procedure editor di programma. Quindi aprire un programma esistente o iniziare un nuovo programma.

2 Ottenere il nome della sequenza da utilizzare nell'istruzione SQL. Digitare ed eseguire la seguente query nella riga di comando:

SELECT *
DA USER_SEQUENCES;

La query dovrebbe restituire il nome di ogni sequenza accessibili all'utente nello schema, elencando i valori minimi e massimi di ogni.

3 Utilizzare il pseudocolonna nextval per restituire il valore del prossimo numero sequenziale. Il valore può essere raggiunto in un blocco PL / SQL con un inserimento, aggiornamento o select, come nell'esempio seguente:

UPDATE DIPENDENTE
SET EmpID = emp_Id_seq.NEXTVAL
DOVE EmpID = "101400";

o

SELEZIONA emp_id_seq.NEXTVAL da doppio;

o

INSERT INTO IMPIEGATO (EmpID)
VALORI (emp_id_seq.NEXTVAL)

Una volta che il numero è generato, è disponibile solo per l'utente per la particolare sessione di database.

4 Utilizzare il pseudocolonna CURRVAL per visualizzare il valore per l'ultimo numero di sequenza utilizzata digitando il seguente codice:

SELEZIONA emp_id_seq.NEXTVAL da doppio;

Consigli e avvertenze

  • NEXTVAL incrementerà indipendentemente dal fatto che la sequenza sia stata commessa o il rollback. Inoltre, le sequenze nextval non possono essere utilizzati in una sottoquery, vista di interrogazione, selezione dichiarazioni DISTINCT, selezionare il gruppo BY o ORDER BY dichiarazioni, unione, o ALTER TABLE.
  • Il generatore di sequenza NEXTVAL deve essere eseguito prima la query CURRVAL.