Tworzenie i kasowanie Sekwencji (oracle sequence)
niedziela, sierpień 3rd, 2008
Sekwencja jest to obiekt bazodanowy który służy do automatycznego generowania unikalnych wartości w tabeli, często sekwencje są używane do klucza podstawowego i klucza obcego.
Do generowanie wartości sekwencji potrzebne są nam dwie pseudokolumny: CURRVAL i NEXTVAL.
Najlepiej zrozumieć to na przykładzie:
CREATE SEQUENCE pracow_seq START WITH 1000 increment by 1;
w tym przykładzie stworzyliśmy sekwencję pracow_seq która będzie użyta na tabeli pracownicy która wystartuje od 1000 i będzie zmniejszać się o 1.
NA początku trzeba tą sekwencje zainicjować z NEXTVAL
select pracow_seq.NEXTVAL from dual;
po zainicjowaniu sekwencji, wstawiamy rekort do tabeli pracownicy
INSERT INTO pracownicy VALUES
(pracow_seq.CURRVAL, ‘Piotr’, ‘Nowakowski’, 29);
ten insert wstawi wiersz do tabeli pracownicy, wiersz ten będzie miał następujące wartości:
aktualny nr sekwencji, imię, nazwisko, wiek
do skasowania sekwencji służy polecenie DROP SEQUENCE, przykład jak poniżej
DROP SEQUENCE pracow_seq;