SAP HANA-veiledning: Lag sekvens
Hva er sekvens?
En sekvens er et databaseobjekt som automatisk genererer den inkrementerte listen over numeriske verdier i henhold til regelen som spesifisert i sekvensspesifikasjonen.
For eksempel for å sette inn ansattnummer automatisk i kolonne (EMPLOYEE_NO) i Tabell, når en ny post settes inn i tabellen, bruker vi sekvens.
Sekvensverdier genereres i stigende eller synkende rekkefølge.
Sekvenser er ikke knyttet til tabeller; de brukes av applikasjonen. Det er to verdier i rekkefølge –
- CURRVAL – Angi gjeldende verdi for sekvens.
- NEXTVAL – Angi neste verdi av sekvensen.
SYNTAKS
CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]
SYNTAKSEELEMENTER
ELEMENTS | BESKRIVELSE |
---|---|
Det er navnet på sekvensen. | |
[ ] | Den spesifiserer en eller flere sekvensparametere. |
START MED | Den beskriver startsekvensverdien. |
ØK MED | Dette spesifiserer verdien som skal økes fra den siste verdien som ble tildelt for hver gang en ny sekvensverdi genereres. Standard er 1. |
MAXVALUE | Dette spesifiserer maksimumsverdien som kan genereres av sekvensen. kan være mellom -4611686018427387903 og 4611686018427387902. |
IKKE MAKSVERDI | Når NO MAXVALUE er spesifisert, for en stigende sekvens, vil maksimumsverdien være 4611686018427387903 og minimumsverdien for en synkende sekvens vil være -1. |
MINVERDI / INGEN MINVERDI | Den spesifiserer minimumsverdien som en sekvens kan generere. kan være mellom -4611686018427387904 og 4611686018427387902. Når INGEN MINVERDI brukes, er minimumsverdien for en stigende sekvens 1 |
SYKLUS | CYCLE-direktivet spesifiserer at sekvensnummeret vil bli startet på nytt etter at det når sin maksimums- eller minimumsverdi. |
INGEN SYKLUS | Standardalternativ.NO SYCLE-direktivet spesifiserer at sekvensnummeret ikke vil bli startet på nytt etter at det når sin maksimums- eller minimumsverdi. |
CACHE / | Bufferstørrelsen spesifiserer hvilket område av sekvensnumre som skal bufres i en node. må være usignert heltall. |
INGEN CACHE | Standardalternativ. NO CACHE-direktivet spesifiserer at sekvensnummeret ikke vil bli bufret i en node. |
TILBAKESTILL AV | Den spesifiserer at under omstart av databasen, kjører databasen automatisk og sekvensverdien startes på nytt med den returnerte verdien. |
Eksempel -
Vi vil lage en sekvens med navnet DHK_SCHEMA.EMP_NO, som vil skape økt verdi av sekvensen med +1 hver gang når sekvensen brukes.
Sekvensskript –
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
Her vil vi bruke objektet "sekvens" i eksemplet nedenfor for å øke verdien av ansattnr med +1 hver gang valgspørringen utføres. I spørringen kan "nextval" brukes til serienummergenerering eller samme type krav.
Bruk av sekvens –
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
OUTPUT – 100,101,102………Så for hver kjøring av ovenstående velger du spørringen.