SAP Vodič za HANA: Stvaranje niza
Što je sekvenca?
Niz je objekt baze podataka koji automatski generira inkrementirani popis numeričkih vrijednosti prema pravilu kako je navedeno u specifikaciji niza.
Na primjer, za automatsko umetanje broja zaposlenika u stupac (EMPLOYEE_NO) tablice, kada se novi zapis umetne u tablicu, tada koristimo niz.
Vrijednosti niza generiraju se uzlaznim ili silaznim redoslijedom.
Nizovi nisu povezani s tablicama; koristi ih aplikacija. Postoje dvije vrijednosti u nizu –
- CURRVAL – Navedite trenutnu vrijednost niza.
- NEXTVAL – Navedite sljedeću vrijednost niza.
SINTAKSA
CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]
ELEMENTI SINTAKSE
ELEMENTI | OPIS |
---|---|
To je naziv niza. | |
[ ] | Određuje jedan ili više parametara sekvence. |
POČETI SA | Opisuje vrijednost početne sekvence. |
POVEĆAJ ZA | Ovo specificira vrijednost koja se povećava od posljednje dodijeljene vrijednosti za svaki put kada se generira nova vrijednost niza. Zadana vrijednost je 1. |
MAKSIMALNA VRIJEDNOST | Ovo specificira maksimalnu vrijednost koju može generirati niz. može biti između -4611686018427387903 i 4611686018427387902. |
NIJE MAKSIMALNA VRIJEDNOST | Kada je navedeno NO MAXVALUE, za uzlazni niz, maksimalna vrijednost će biti 4611686018427387903, a minimalna vrijednost za silazni niz bit će -1. |
MIN VRIJEDNOST / BEZ MINIMALNE VRIJEDNOSTI | Određuje minimalnu vrijednost koju niz može generirati. može biti između -4611686018427387904 i 4611686018427387902. Kada se koristi NO MINVALUE, minimalna vrijednost za uzlazni niz je 1 |
CIKLUS | Direktiva CYCLE navodi da će se redni broj ponovno pokrenuti nakon što dosegne maksimalnu ili minimalnu vrijednost. |
NEMA CIKLUSA | Zadana opcija. Direktiva NO CYCLE navodi da se redni broj neće ponovno pokrenuti nakon što dosegne maksimalnu ili minimalnu vrijednost. |
PRIPREMA / | Veličina predmemorije određuje koji će se niz brojeva sekvenci pohraniti u predmemoriju u čvoru. mora biti cijeli broj bez predznaka. |
NEMA KEAŠA | Zadana opcija. Direktiva NO CACHE specificira da redni broj neće biti predmemoriran u čvoru. |
RESETIRATI DO | Određuje da tijekom ponovnog pokretanja baze podataka, baza podataka automatski izvršava a vrijednost niza se ponovno pokreće s vraćenom vrijednošću. |
Primjer -
Stvorit ćemo sekvencu pod nazivom DHK_SCHEMA.EMP_NO, koja će kreirati inkrementiranu vrijednost sekvence za +1 svaki put kada se sekvenca koristi.
Sekvenca skripte –
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
Ovdje ćemo koristiti “sekvencu” objekta u donjem primjeru za povećanje vrijednosti broja zaposlenika za +1 svaki put kada se izvrši upit za odabir. U upitu se "nextval" može koristiti za generiranje serijskog broja ili iste vrste zahtjeva.
Upotreba sekvence –
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
OUTPUT – 100,101,102………Dakle, pri svakom izvršavanju gornjeg upita za odabir.