Vad är sekvens?
En sekvens är ett databasobjekt som automatiskt genererar den inkrementerade listan över numeriska värden enligt regel som anges i sekvensspecifikationen.
Till exempel för att automatiskt infoga anställd i kolumnen (EMPLOYEE_NO) i tabellen, när en ny post infogas i tabellen använder vi sekvens.
Sekvensvärden genereras i stigande eller fallande ordning.
Sekvenser är inte associerade med tabeller; de används av applikationen. Det finns två värden i följd -
- CURRVAL - Ange aktuellt värde för sekvens.
- NEXTVAL - Ange nästa värde för sekvensen.
SYNTAX
CREATE SEQUENCE[ ] [RESET BY ]
SYNTAX ELEMENT
ELEMENTER | BESKRIVNING |
---|---|
Det är namnet på sekvensen. | |
[ | Den anger en eller flera sekvensparametrar. |
Börja med | Den beskriver startsekvensvärdet. |
ÖKNING MED | Detta anger värdet som ska ökas från det senast tilldelade värdet för varje gång ett nytt sekvensvärde genereras. Standard är 1. |
MAXVÄRDE | Detta anger maximalt värde som kan genereras av sekvensen. |
INGEN MAXVÄRDE | När NO MAXVALUE är specificerat, för en stigande sekvens, blir det maximala värdet 4611686018427387903 och minimivärdet för en fallande sekvens är -1. |
MINVALUE | Den anger det minsta värde som en sekvens kan generera. |
CYKEL | CYCLE-direktivet anger att sekvensnumret startas om när det når sitt maximala eller minsta värde. |
INGEN Cykel | Standardalternativ. INGET CYCLE-direktiv anger att sekvensnummer inte startas om efter att det når sitt maximala eller minsta värde. |
CACHE | Cachestorleken anger vilket intervall av sekvensnummer som ska cachas i en nod. |
INGEN CACHE | Standardalternativ. NO CACHE-direktivet anger att sekvensnumret inte kommer att cachas i en nod. |
ÅTERSTÄLL AV | Det specificerar att under omstart av databasen kör databasen automatiskt |
Exempel -
Vi skapar en sekvens med namnet DHK_SCHEMA.EMP_NO, som skapar stegvis värde för sekvensen med +1 varje gång, när sekvensen används.
Sekvensskript -
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
Här kommer vi att använda objektets "sekvens" i exemplet nedan för att öka värdet på anställd nr med +1 varje gång den valda frågan körs. I frågan kan "nextval" användas för generering av serienummer eller samma typ av krav.
Användning av sekvens -
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
UTGÅNG - 100.101.102
... Så vid varje körning av ovanstående fråga.