Více na
Jak vytvořit id s AUTO_INCREMENT v systému Oracle?
Zdá se, že ve společnosti Oracle až do verze 11g včetně neexistuje koncept AUTO_INCREMENT.
Jak mohu vytvořit sloupec, který se v Oracle 11g chová jako auto increment?
387
3
V systému Oracle od verze Oracle 11g neexistuje nic takového jako "auto_increment" nebo "identity" sloupce. Můžete je však snadno modelovat pomocí sekvence a spouštěče:
Definice tabulky:
Definice spouštěče:
UPDATE:
Sloupec
IDENTITY
je nyní k dispozici v systému Oracle 12c:nebo zadat počáteční a přírůstkové hodnoty, což také zabrání jakémukoli vložení do sloupce identity (
GENERATED ALWAYS
) (opět pouze Oracle 12c+)Oracle 12 také umožňuje alternativně použít sekvenci jako výchozí hodnotu:
Zde jsou tři příchutě:
RAW
.x
je sloupec identity. V každém z příkladů nahraďteFOO
názvem vaší tabulky.update:
Oracle 12c zavádí tyto dvě varianty, které nejsou závislé na spouštěčích:
První z nich používá sekvenci tradičním způsobem, druhá spravuje hodnotu interně.
Předpokládám, že máte na mysli sloupec, jako je sloupec identity SQL Serveru?
V systému Oracle se pro dosažení stejné funkce používá SEQUENCE. Podívám se, jestli najdu dobrý odkaz a zveřejním ho zde.
Aktualizace: vypadá to, že jsi ho našel sám. Tady je každopádně odkaz: http://www.techonthenet.com/oracle/sequences.php