Hvordan oprettes id med AUTO_INCREMENT i Oracle?
Det ser ud til, at der ikke findes noget koncept for AUTO_INCREMENT i Oracle, indtil og med version 11g.
Hvordan kan jeg oprette en kolonne, der opfører sig som auto increment i Oracle 11g?
387
3
Der findes ikke noget som "auto_increment" eller "identitet" kolonner i Oracle fra Oracle 11g. Du kan dog nemt modellere det med en sekvens og en trigger:
Tabeldefinition:
Definition af udløser:
OPDATE:
IDENTITY
kolonnen er nu tilgængelig på Oracle 12c:eller angiv start- og inkrementeringsværdier, hvilket også forhindrer enhver indsættelse i identitetskolonnen (
GENERATED ALWAYS
) (igen, kun Oracle 12c+)Alternativt giver Oracle 12 også mulighed for at bruge en sekvens som standardværdi:
Her er tre smagsvarianter:
RAW
datatype.x
er identitetskolonnen. ErstatFOO
med dit tabelnavn i hvert af eksemplerne.opdatering:
Oracle 12c introducerer disse to varianter, der ikke er afhængige af triggere:
Den første bruger en sekvens på den traditionelle måde; den anden håndterer værdien internt.
Jeg går ud fra, at du mener en kolonne som SQL Server identity-kolonnen?
I Oracle bruger du en SEQUENCE for at opnå den samme funktionalitet. I'll se om jeg kan finde et godt link og sende det her.
Opdatering: ser ud til at du selv har fundet det. Her er linket alligevel: http://www.techonthenet.com/oracle/sequences.php