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;