SAP HANA Tutorial: Opret sekvens
Hvad er sekvens?
En sekvens er et databaseobjekt, der automatisk genererer den inkrementerede liste over numeriske værdier i henhold til regel som specificeret i sekvensspecifikation.
For eksempel for at indsætte medarbejdernummer automatisk i kolonne (EMPLOYEE_NO) i tabel, når en ny post indsættes i tabellen, så bruger vi sekvens.
Sekvensværdier genereres i stigende eller faldende rækkefølge.
Sekvenser er ikke knyttet til tabeller; de bruges af applikationen. Der er to værdier i rækkefølge -
- KURRVAL – Angiv den aktuelle værdi af sekvensen.
- NEXTVAL – Angiv næste værdi af sekvensen.
SYNTAKS
CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]
SYNTAKSEELEMENTER
ELEMENTER | BESKRIVELSE |
---|---|
Det er navnet på sekvensen. | |
[ ] | Den specificerer en eller flere sekvensparametre. |
START MED | Den beskriver startsekvensværdien. |
FORØG MED | Dette angiver den værdi, der skal øges fra den sidste værdi, der er tildelt for hver gang, når en ny sekvensværdi genereres. Standard er 1. |
MAXVALUE | Dette angiver den maksimale værdi, som kan genereres af sekvensen. kan være mellem -4611686018427387903 og 4611686018427387902. |
INGEN MAKSVÆRDI | Når NO MAXVALUE er angivet, for en stigende sekvens, vil den maksimale værdi være 4611686018427387903, og minimumsværdien for en faldende sekvens vil være -1. |
MINVÆRDI / INGEN MINVÆRDI | Den specificerer den minimumsværdi, som en sekvens kan generere. kan være mellem -4611686018427387904 og 4611686018427387902. Når INGEN MINVÆRDI bruges, er minimumsværdien for en stigende sekvens 1 |
CYKLUS | CYCLE-direktivet specificerer, at sekvensnummeret genstartes, når det når sin maksimum- eller minimumværdi. |
INGEN CYKUS | Standard option.NO CYCLE-direktivet specificerer, at sekvensnummeret ikke genstartes, når det når sin maksimum- eller minimumværdi. |
CACHE / | Cachestørrelsen specificerer, hvilket område af sekvensnumre, der skal cachelagres i en node. skal være heltal uden fortegn. |
INGEN CACHE | Standardindstilling. NO CACHE-direktivet angiver, at sekvensnummeret ikke vil blive cachelagret i en node. |
NULSTIL AF | Det specificerer, at under genstart af databasen, udfører databasen automatisk og sekvensværdien genstartes med den returnerede værdi. |
Eksempel -
Vi vil oprette en sekvens med navnet DHK_SCHEMA.EMP_NO, som vil skabe øget værdi af sekvensen med +1 hver gang, når sekvensen bruges.
Sekvens script –
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
Her vil vi bruge objektet "sekvens" i eksemplet nedenfor til at øge værdien af medarbejdernr med +1 hver gang valgforespørgslen udføres. I forespørgslen kan "nextval" bruges til serienummergenerering eller samme type krav.
Brug af sekvens –
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
OUTPUT – 100,101,102………Så ved hver udførelse af ovenstående vælg forespørgsel.