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ść sekwencjimaxvalue x
– maksymalną wartość sekwencjistart with y
– wartość początkową sekwencjiincrement by z
– wartość o którą zwiększy się sekwencjacycle
– 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;