Sekwencje w Oracle SQL – create, drop sequence (jak utworzyć i usunąć)

W języku Oracle SQL sekwencje tworzymy w następujący sposób:

CREATE SEQUENCE nazwa_sekwencji
minvalue q
maxvalue x
start with y
increment by z
cycle/nocycle

gdzie parametry q, x, y, z oznaczają kolejno:

minvalue q – minimanlą wartość sekwencji
maxvalue x – maksymalną wartość sekwencji
start with y – wartość początkową sekwencji
increment by z – wartość o którą zwiększy się sekwencja
cycle – powoduje, że sekwencja po osiągnięciu wartości maksymalnej (maxvalue) w dalszym ciągu generuje kolejne wartości poczynając od wartości minimalnej (minvalue)
nocycle – sekwencja nie liczy od nowa (ustawienie domyślne sekwencji)

Przejdźmy teraz do przykładu i utwórzmy często stosowaną sekwencje nazwie: “licznik“:

CREATE SEQUENCE licznik
minvalue 1
maxvalue 9999
start with 1
increment by 1

Aby móc korzystać z danej sekwencji możemy posłużyć się poleceniami: currval oraz nextval.

currval – wyświetla aktualną wartość sekwencji

select nazwa_sekwencji.currval from dual;

select licznik.currval from dual;

nextval – zwiększa wartość sekwencji o wartość określoną poprzez “increment by” podczas definiowania sekwencji

select nazwa_sekwencji.nextval from dual;

select licznik.nextval from dual;

Pierwsze wywołanie sekwencji zwróci nam wartość 1:

select licznik.nextval from dual; -- 1

Kolejne wywołanie zwiększa sekwencję:

select licznik.nextval from dual; -- 2

select licznik.nextval from dual; -- 3

select licznik.nextval from dual; -- 4

currval – umożliwia nam odczytanie aktualnej wartości sekwencji:

select licznik.currval from dual; -- 4

drop sequence – usunie wskazaną sekwencję:

DROP SEQUENCE nazwa_sekwencji;

W naszym przypadku będzie to:

DROP SEQUENCE licznik;