Samouczek SAP HANA: Utwórz sekwencję

Anonim

Co to jest sekwencja?

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

Na przykład, aby automatycznie wstawić numer pracownika w kolumnie (EMPLOYEE_NO) tabeli, gdy nowy rekord jest wstawiany do tabeli, używamy sekwencji.

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

Sekwencje nie są powiązane z tabelami; są używane przez aplikację. Istnieją dwie wartości w kolejności -

  • CURRVAL - Podaj bieżącą wartość sekwencji.
  • NEXTVAL - Podaj następną wartość sekwencji.

SKŁADNIA

UTWÓRZ SEKWENCJĘ  [
] [ZERUJ PRZEZ 
]

ELEMENTY SKŁADNIKI

ELEMENTY OPIS
To jest nazwa sekwencji.
[] Określa jeden lub więcej parametrów sekwencji.
ZACZNIJ OD Opisuje wartość sekwencji początkowej.
WZROST O Określa wartość, która ma być zwiększana od ostatniej wartości przypisanej za każdym razem, gdy generowana jest nowa wartość sekwencji. Wartość domyślna to 1.
MAXVALUE Określa maksymalną wartość, jaką może wygenerować sekwencja. może wynosić od -4611686018427387903 do 4611686018427387902.
NO MAXVALUE Jeśli określono wartość NO MAXVALUE, dla kolejności rosnącej wartość maksymalna wyniesie 4611686018427387903, a wartość minimalna dla sekwencji malejącej będzie wynosić -1.
MINVALUE / NO MINVALUE Określa minimalną wartość, jaką może wygenerować sekwencja. może zawierać się w przedziale od -4611686018427387904 do 4611686018427387902. Gdy używana jest wartość NO MINVALUE, minimalna wartość dla kolejności rosnącej wynosi 1
CYKL Dyrektywa CYCLE określa, że ​​numer kolejny zostanie uruchomiony ponownie po osiągnięciu maksymalnej lub minimalnej wartości.
BEZ CYKLU Opcja domyślna Dyrektywa NO CYCLE określa, że ​​numer kolejny nie będzie restartowany po osiągnięciu maksymalnej lub minimalnej wartości.
CACHE / Rozmiar pamięci podręcznej określa, jaki zakres numerów sekwencji będzie przechowywany w pamięci podręcznej w węźle. musi być liczbą całkowitą bez znaku.
NO CACHE Domyślna opcja. Dyrektywa NO CACHE określa, że ​​numer kolejny nie będzie buforowany w węźle.
RESETUJ PRZEZ Określa, że ​​podczas restartu bazy danych baza danych automatycznie wykonuje , a wartość sekwencji jest restartowana ze zwróconą wartością.

Przykład -

Stworzymy sekwencję o nazwie DHK_SCHEMA.EMP_NO, która utworzy wartość sekwencji zwiększoną o +1 za każdym razem, gdy sekwencja jest używana.

Skrypt sekwencji -

UTWÓRZ SEKWENCJĘ DHK_SCHEMA.EMP_NO ZACZNIJ O 100 PRZYROSTÓW O 1. 

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

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 wybierającego.