Hvordan opprette id med AUTO_INCREMENT på Oracle?
Det ser ut til at det ikke finnes noe konsept for AUTO_INCREMENT i Oracle, til og med versjon 11g.
Hvordan kan jeg opprette en kolonne som oppfører seg som automatisk inkrement i Oracle 11g?
387
3
Det er ikke noe som heter "auto_increment" eller "identitet" kolonner i Oracle fra og med Oracle 11g. Du kan imidlertid enkelt modellere det med en sekvens og en utløser:
Tabelldefinisjon:
Definisjon av utløser:
UPDATE:
Kolonnen
IDENTITET
er nå tilgjengelig på Oracle 12c:eller angi start- og inkrementverdier, noe som også forhindrer innsetting i identitetskolonnen (
GENERATED ALWAYS
) (igjen, kun Oracle 12c+).Alternativt tillater Oracle 12 også å bruke en sekvens som standardverdi:
Her er tre smaker:
RAW
datatype.x
er identitetskolonnen. Erstatt
FOO` med ditt tabellnavn i hvert av eksemplene.oppdatering:
Oracle 12c introduserer disse to variantene som ikke er avhengig av utløsere:
Den første bruker en sekvens på den tradisjonelle måten; den andre administrerer verdien internt.
Forutsatt at du mener en kolonne som SQL Server-identitetskolonnen?
I Oracle bruker du en SEQUENCE for å oppnå samme funksjonalitet. Jeg skal se om jeg kan finne en god lenke og legge den ut her.
Oppdatering: ser ut til at du fant det selv. Her er lenken uansett: http://www.techonthenet.com/oracle/sequences.php