SAP Výukový program HANA: Vytvořte sekvenci

Co je sekvence?

Sekvence je databázový objekt, který automaticky generuje inkrementovaný seznam číselných hodnot podle pravidla specifikovaného ve specifikaci sekvence.

Například pro automatické vložení čísla zaměstnance do sloupce (EMPLOYEE_NO) tabulky, když je do tabulky vložen nový záznam, pak použijeme sekvenci.

Sekvenční hodnoty jsou generovány ve vzestupném nebo sestupném pořadí.

Sekvence nejsou spojeny s tabulkami; jsou používány aplikací. Existují dvě hodnoty za sebou –

  • CURRVAL – Zadejte aktuální hodnotu sekvence.
  • NEXTVAL – Zadejte další hodnotu sekvence.

SYNTAX

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

PRVKY SYNTAXE

PRVKY POPIS
Je to název sekvence.
[ ] Určuje jeden nebo více parametrů sekvence.
ZAČÍT S Popisuje hodnotu počáteční sekvence.
PŘÍRŮST O Toto specifikuje hodnotu, která se má zvýšit od poslední přiřazené hodnoty pokaždé, když je vygenerována nová sekvenční hodnota. Výchozí hodnota je 1.
MAX Toto specifikuje maximální hodnotu, kterou může sekvence vygenerovat. může být mezi -4611686018427387903 a 4611686018427387902.
ŽÁDNÁ MAXIMÁLNÍ HODNOTA Když je zadána NO MAXVALUE, pro vzestupnou sekvenci bude maximální hodnota 4611686018427387903 a minimální hodnota pro sestupnou sekvenci bude -1.
MIN / ŽÁDNÁ MINIMÁLNÍ HODNOTA Určuje minimální hodnotu, kterou může sekvence vygenerovat. může být mezi -4611686018427387904 a 4611686018427387902. Při použití NO MINVALUE je minimální hodnota pro vzestupnou sekvenci 1
CYKLUS Direktiva CYCLE určuje, že pořadové číslo bude restartováno poté, co dosáhne své maximální nebo minimální hodnoty.
ŽÁDNÝ CYKLUS Výchozí volba. Direktiva NO CYCLE určuje, že pořadové číslo nebude restartováno poté, co dosáhne své maximální nebo minimální hodnoty.
MEZIPAMĚTI / Velikost mezipaměti určuje, který rozsah sekvenčních čísel bude v uzlu uložen do mezipaměti. musí být celé číslo bez znaménka.
ŽÁDNÁ CACHE Výchozí možnost. Direktiva NO CACHE určuje, že pořadové číslo nebude ukládáno do mezipaměti v uzlu.
RESET BY Určuje, že během restartu databáze databáze automaticky provede a hodnota sekvence je restartována s vrácenou hodnotou.

Příklad -

Vytvoříme sekvenci s názvem DHK_SCHEMA.EMP_NO, která vytvoří navýšenou hodnotu sekvence o +1 pokaždé, když je sekvence použita.

Sekvenční skript –

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

Zde použijeme objekt „sekvence“ v níže uvedeném příkladu ke zvýšení hodnoty zaměstnance no o +1 pokaždé, když se provede výběrový dotaz. V dotazu lze „nextval“ použít pro generování sériového čísla nebo stejného typu požadavku.

Použití sekvence –

SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;

VÝSTUP – 100,101,102…Takže při každém provedení výše uvedeného vyberte dotaz.