Oracle Database
sekvenser
Sök…
Syntax
- SKAPA SEKVENSSKEMA.SEKVENS {ÖKNING AV INTEGER | START MED INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUEINTEGER | NOMINVALUE INTEGER | CYKELINTEGER | NOCYCLE INTEGER | CACHE | NOCACHE | BESTÄLLNING | NOODER}
parametrar
Parameter | detaljer |
---|---|
schema | schema namn |
ökning med | intervall mellan siffrorna |
börja med | första numret behövs |
MAXVALUE | Maximalvärde för sekvensen |
nomaxvalue | Maxvärdet är som standard |
MINVALUE | minimivärde för sekvensen |
nominvalue | minimivärde är standard |
cykel | Återställ till början efter att du har nått detta värde |
nocycle | Standard |
cache | Förhandsgräns |
nocache | Standard |
beställa | Garantera ordningen med siffror |
ingen order | standard |
Skapa en sekvens: exempel
Ändamål
Använd CREATE SEQUENCE-satset för att skapa en sekvens, som är ett databasobjekt från vilket flera användare kan generera unika heltal. Du kan använda sekvenser för att automatiskt generera primära nyckelvärden.
När ett sekvensnummer genereras ökas sekvensen, oberoende av vilken transaktion som begås eller rullar tillbaka. Om två användare samtidigt ökar samma sekvens kan de sekvensnummer som varje användare förvärvar ha luckor, eftersom sekvensnummer genereras av den andra användaren. En användare kan aldrig få sekvensnumret som genereras av en annan användare. Efter att ett sekvensvärde genererats av en användare kan den användaren fortsätta att komma åt det värdet oavsett om sekvensen ökas av en annan användare.
Sekvensnummer genereras oberoende av tabeller, så samma sekvens kan användas för en eller för flera tabeller. Det är möjligt att enskilda sekvensnummer verkar hoppa över, eftersom de genererades och användes i en transaktion som till slut rullade tillbaka. Dessutom kanske en enda användare inte inser att andra användare drar från samma sekvens.
När en sekvens har skapats kan du få åtkomst till dess värden i SQL-satser med CURRVAL-pseudokolumnen, som returnerar det aktuella värdet för sekvensen, eller NEXTVAL-pseudokolumnen, som ökar sekvensen och returnerar det nya värdet.
förutsättningar
För att skapa en sekvens i ditt eget schema måste du ha CREATE SEQUENCE-systembehörighet.
För att skapa en sekvens i en annan användares schema måste du ha CREATE ANY SEQUENCE-systembehörighet.
Skapa en sekvens: Exempel Följande uttalande skapar sekvensen clients_seq i exempelschemat oe. Denna sekvens kan användas för att tillhandahålla kund-ID-nummer när rader läggs till i kundtabellen.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
Den första referensen till customer_seq.nextval returnerar 1000. Den andra returnerar 1001. Varje efterföljande referens kommer att returnera ett värde 1 större än föregående referens.