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 " Komenda. Oto jak to robisz:

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.