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.
