Viac na
Ako vytvoriť id s AUTO_INCREMENT v systéme Oracle?
Zdá sa, že v systéme Oracle až do verzie 11g vrátane neexistuje koncept AUTO_INCREMENT.
Ako môžem vytvoriť stĺpec, ktorý sa v Oracle 11g správa ako auto increment?
387
3
V systéme Oracle od verzie Oracle 11g neexistuje nič také ako "auto_increment" alebo "identity" stĺpce. Môžete ho však ľahko modelovať pomocou sekvencie a spúšťača:
Definícia tabuľky:
Definícia spúšťača:
UPDATE:
IDENTITY
stĺpec je teraz dostupný v Oracle 12c:alebo špecifikovať počiatočné hodnoty a hodnoty prírastku, čo tiež zabráni akémukoľvek vloženiu do stĺpca identity (
GENERATED ALWAYS
) (opäť len Oracle 12c+)Prípadne Oracle 12 umožňuje použiť ako predvolenú hodnotu aj sekvenciu:
Tu sú tri príchute:
RAW
.x
je stĺpec identity. V každom z príkladov nahraďteFOO
názvom vašej tabuľky.aktualizovať:
Oracle 12c zavádza tieto dva varianty, ktoré nie sú závislé na spúšťačoch:
Prvý z nich používa sekvenciu tradičným spôsobom; druhý spravuje hodnotu interne.
Predpokladáme, že máte na mysli stĺpec, ako je stĺpec identity servera SQL Server?
V Oracle sa na dosiahnutie rovnakej funkcie používa SEQUENCE. Uvidím, či nájdem dobrý odkaz a uverejním ho tu.
Aktualizácia: vyzerá to tak, že ste ho našli sami. Tu je odkaz v každom prípade: http://www.techonthenet.com/oracle/sequences.php