SAP Samouczek HANA: Utwórz sekwencję

Co to jest sekwencja?

Sekwencja to obiekt bazy danych, który automatycznie generuje zwiększoną listę wartości numerycznych zgodnie z regułą określoną w specyfikacji sekwencji.

Przykładowo, aby automatycznie wstawić numer pracownika w kolumnie (EMPLOYEE_NO) tabeli, po wstawieniu nowego rekordu do tabeli stosujemy sekwencję.

Wartości sekwencji są generowane w kolejności rosnącej lub malejącej.

Sekwencje nie są powiązane z tabelami; są one używane przez aplikację. Kolejno występują dwie wartości –

  • CURRVAL – Podaj aktualną wartość sekwencji.
  • NEXTVAL – Podaj następną wartość sekwencji.

SKŁADNIA

CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]

ELEMENTY SKŁADNIOWE

ELEMENTY OPIS
To nazwa sekwencji.
[ ] Określa jeden lub więcej parametrów sekwencji.
ZACZĄĆ OD Opisuje wartość sekwencji początkowej.
PRZYROST O Określa wartość, która ma być zwiększana od ostatniej przypisanej wartości za każdym razem, gdy generowana jest nowa wartość sekwencji. Wartość domyślna to 1.
MAKSYMALNA WARTOŚĆ Określa maksymalną wartość, jaką może wygenerować sekwencja. może wynosić od -4611686018427387903 do 4611686018427387902.
BRAK MAKSYMALNEJ WARTOŚCI Jeśli określono wartość NO MAXVALUE, dla sekwencji rosnącej wartość maksymalna będzie wynosić 4611686018427387903, a wartość minimalna dla sekwencji malejącej będzie wynosić -1.
WARTOŚĆ MIN / BRAK WARTOŚCI MINIMALNEJ Określa minimalną wartość, jaką może wygenerować sekwencja. może wynosić od -4611686018427387904 do 4611686018427387902. Gdy używana jest wartość NO MINVALUE, minimalna wartość dla sekwencji rosnącej wynosi 1
CYKL Dyrektywa CYCLE określa, że ​​numer kolejny zostanie uruchomiony ponownie po osiągnięciu wartości maksymalnej lub minimalnej.
BEZ CYKLU Opcja domyślna. Dyrektywa NO CYCLE określa, że ​​numer kolejny nie będzie uruchamiany ponownie po osiągnięciu wartości maksymalnej lub minimalnej.
PAMIĘĆ PODRĘCZNA / Rozmiar pamięci podręcznej określa, jaki zakres numerów sekwencyjnych będzie buforowany w węźle. musi być liczbą całkowitą bez znaku.
BEZ Pamięci podręcznej Domyślna opcja. Dyrektywa NO CACHE określa, że ​​numer kolejny nie będzie buforowany w węźle.
ZRESETOWANY PRZEZ Określa, że ​​podczas ponownego uruchamiania bazy danych baza danych automatycznie wykonuje i wartość sekwencji jest ponownie uruchamiana ze zwróconą wartością.

Przykład -

Stworzymy sekwencję o nazwie DHK_SCHEMA.EMP_NO, która będzie tworzyła wartość sekwencji zwiększaną o +1 za każdym razem, gdy sekwencja zostanie użyta.

Skrypt sekwencji –

CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.

Tutaj użyjemy obiektu „sekwencja” w poniższym przykładzie, aby zwiększyć wartość pracownika nr o +1 za każdym razem, gdy wykonywane jest zapytanie wybierające. W zapytaniu „nextval” może zostać użyte do wygenerowania numeru seryjnego lub wymagania tego samego typu.

Użycie sekwencji –

SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;

WYJŚCIE – 100,101,102………Tak więc przy każdym wykonaniu powyższego zapytania wybierz.

Podsumuj ten post następująco: