Oracle Database
Opeenvolgingen
Zoeken…
Syntaxis
- CREATE SEQUENCE SCHEMA.SEQUENCE {VERHOGING DOOR INTEGER | BEGIN MET INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLUS INTEGER | NOCYCLE INTEGER | CACHE | NOCACHE | BESTELLEN | NOODER}
parameters
Parameter | Details |
---|---|
schema | schemanaam |
ophogen met | interval tussen de cijfers |
beginnen met | eerste nummer nodig |
maximum waarde | Maximale waarde voor de reeks |
nomaxvalue | Maximale waarde is standaard |
minvalue | minimumwaarde voor de reeks |
nominvalue | minimumwaarde is standaard |
fiets | Begin opnieuw na het bereiken van deze waarde |
nocycle | Standaard |
cache | Preallocatielimiet |
nocache | Standaard |
bestellen | Garandeer de volgorde van nummers |
geen bestelling | standaard |
Een reeks maken: voorbeeld
Doel
Gebruik de instructie CREATE SEQUENCE om een reeks te maken. Dit is een databaseobject waaruit meerdere gebruikers unieke gehele getallen kunnen genereren. U kunt sequenties gebruiken om automatisch primaire sleutelwaarden te genereren.
Wanneer een volgnummer wordt gegenereerd, wordt de reeks verhoogd, onafhankelijk van de transactie die wordt uitgevoerd of teruggedraaid. Als twee gebruikers tegelijkertijd dezelfde reeks ophogen, kunnen de volgnummers die elke gebruiker verkrijgt hiaten hebben, omdat volgnummers door de andere gebruiker worden gegenereerd. De ene gebruiker kan nooit het door een andere gebruiker gegenereerde volgnummer verkrijgen. Nadat een reekswaarde door een gebruiker is gegenereerd, kan die gebruiker toegang blijven houden tot die waarde ongeacht of de reeks door een andere gebruiker wordt verhoogd.
Volgnummers worden onafhankelijk van tabellen gegenereerd, dus dezelfde reeks kan voor één of voor meerdere tabellen worden gebruikt. Het is mogelijk dat afzonderlijke volgnummers worden overgeslagen, omdat ze zijn gegenereerd en gebruikt in een transactie die uiteindelijk is teruggedraaid. Bovendien realiseert een enkele gebruiker zich misschien niet dat andere gebruikers dezelfde reeks gebruiken.
Nadat een reeks is gemaakt, hebt u toegang tot de waarden in SQL-instructies met de CURRVAL pseudocolumn, die de huidige waarde van de reeks retourneert, of de NEXTVAL pseudocolumn, die de reeks verhoogt en de nieuwe waarde retourneert.
voorwaarden
Als u een reeks in uw eigen schema wilt maken, moet u de machtiging CREATE SEQUENCE hebben.
Als u een reeks in het schema van een andere gebruiker wilt maken, moet u beschikken over de machtiging CREATE ANY SEQUENCE.
Een reeks maken: Voorbeeld De volgende instructie maakt de reeks klanten_seq in het voorbeeldschema oe. Deze reeks kan worden gebruikt om klant-ID-nummers op te geven wanneer rijen aan de klantentabel worden toegevoegd.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
De eerste verwijzing naar customers_seq.nextval retourneert 1000. De tweede verwijzing 1001. Elke volgende verwijzing retourneert een waarde 1 die groter is dan de vorige verwijzing.