DB2 - Sekwencje
W tym rozdziale poznasz koncepcję sekwencji, jej tworzenie, przeglądanie sekwencji i porzucanie ich.
Wprowadzenie
Sekwencja to funkcja oprogramowania, która generuje liczby całkowite w porządku rosnącym lub malejącym, w określonym zakresie, w celu wygenerowania klucza podstawowego i skoordynowania innych kluczy w tabeli. Używasz sekwencji dla dostępnych liczb całkowitych, powiedzmy dla identyfikatora pracownika lub identyfikatora transakcji. Sekwencja może obsługiwać typy danych SMALLINT, BIGINT, INTEGER i DECIMAL. Sekwencja może być współużytkowana przez wiele aplikacji. Sekwencja jest zwiększana lub zmniejszana niezależnie od transakcji.
Sekwencja jest tworzona przez instrukcję CREATE SEQUENCE.
Typy sekwencji
Dostępne są dwa rodzaje sekwencji:
NEXTVAL: Zwraca zwiększoną wartość numeru sekwencyjnego.
PREVIOUS VALUE: Zwraca ostatnio wygenerowaną wartość.
Parametry ciągów
Dla sekwencji używane są następujące parametry:
Data type: Jest to typ danych zwracanej wartości zwiększonej. (SMALLINT, BIGINT, INTEGER, NUMBER, DOUBLE)
START WITH: Wartość odniesienia, od której zaczyna się sekwencja.
MINVALUE: Minimalna wartość, od której zaczyna się sekwencja.
MAXVALUE: Maksymalna wartość sekwencji.
INCREMENT BY: wartość kroku, o którą zwiększana jest sekwencja.
Sequence cycling: klauzula CYCLE powoduje wielokrotne generowanie sekwencji. Generowanie sekwencji odbywa się poprzez odwołanie się do zwróconej wartości, która jest przechowywana w bazie danych przez poprzednią generację sekwencji.
Tworzenie sekwencji
Możesz utworzyć sekwencję, używając następującej składni:
Syntax:
db2 create sequence <seq_name>
Example: [Aby utworzyć nową sekwencję o nazwie „sales1_seq” i zwiększając wartości od 1]
db2 create sequence sales1_seq as int start
with 1 increment by 1
Przeglądanie sekwencji
Możesz zobaczyć sekwencję, używając składni podanej poniżej:
Syntax:
db2 value <previous/next> value for <seq_name>
Example: [Aby zobaczyć listę wcześniej zaktualizowanych wartości w sekwencji „sales1_seq”]
db2 values previous value for sales1_seq
Output:
1
-----------
4
1 record(s) selected.
Upuszczam sekwencję
Aby usunąć sekwencję, musisz użyć „DROP SEQUENCE
Syntax:
db2 drop sequence <seq_name>>
Example: [Aby usunąć sekwencję „sales1_seq” z bazy danych]
db2 drop sequence sales1_seq
Output:
DB20000I The SQL command completed successfully.