Shrnutí: v tomto tutoriálu, se dozvíte, jak používat Oracle identity sloupce snadno definovat automatický generované číselné sloupce tabulky.
Úvod do Oracle identity sloupec
Oracle 12c představil nový způsob, který umožňuje definovat sloupec identity pro tabulka, které je podobné AUTO_INCREMENT
sloupce v MySQL nebo IDENTITY
sloupce v SQL Server.
sloupec identity je velmi užitečný pro sloupec náhradních primárních klíčů., Když vložíte nový řádek do sloupce identity, Oracle automaticky generuje a vloží sekvenční hodnotu do sloupce.
definovat sloupec identity, můžete použít identitu doložka, jak je uvedeno níže:
, GENERATED
klíčové slovo je povinné.
za Druhé, můžete zadat možnost vytvářet identitu hodnoty:
-
GENERATED ALWAYS
: Oracle vždy generuje hodnotu pro sloupec identity. Pokus o vložení hodnoty do sloupce identity způsobí chybu., -
GENERATED BY DEFAULT
: Oracle generuje hodnotu pro sloupec identity, pokud jste poskytnout žádnou hodnotu. Pokud zadáte hodnotu, Oracle vloží tuto hodnotu do sloupce identity. Pro tuto možnost Oracle vydá chybu, pokud do sloupce identity vložíte hodnotu NULL. -
GENERATED BY DEFAULT ON NULL
: Oracle generuje hodnotu pro sloupec identity pokud zadáte hodnotu NULL nebo vůbec žádnou hodnotu.
za třetí, můžete mít řadu možností pro sloupec identity.,
-
START WITH initial_value
řídí počáteční hodnotu pro sloupec identity. Výchozí počáteční hodnota je 1. -
INCREMENT BY internval_value
definuje interval mezi generovanými hodnotami. Ve výchozím nastavení je hodnota intervalu 1. -
CACHE
definuje řadu hodnot, které by Oracle měl předem generovat, aby zlepšil výkon. Tuto možnost používáte pro sloupec, který má vysoký počet vložek.
příklady sloupců identity Oracle
Vezměme si několik příkladů použití sloupců identity Oracle.,
) GENEROVANÉ VŽDY příklad
následující příkaz vytvoří tabulku s názvem identity_demo
, který se skládá z identity sloupce:
následující prohlášení vloží nový řádek do identity_demo
tabulka:
Protože jsme nezadali hodnotu pro id
sloupce, Oracle automaticky generované sekvenční hodnoty počínaje 1.,
následující prohlášení, pokusí vložit hodnoty do id
sloupce identity:
Oracle vydal chyba:
Protože sloupec id byla definována jako GENERATED ALWAYS
, to nelze akceptovat u všech uvedených hodnot.,
B) GENERATED BY DEFAULT example
Let’s change the id
column to GENERATED BY DEFAULT
:
The following statement inserts a new row into the identity_demo
table:
It worked as expected.,
následující prohlášení vloží nový řádek do identity_demo
tabulka s poskytnutou hodnotu pro id
sloupce:
V tomto příkladu, Oracle používá získané hodnoty a vloží je do tabulky.,První, obnoví identity_demo
tabulky, jejichž id
sloupec je definován jako sloupec identity s počáteční hodnotou začíná od 100:
za Druhé, vložit řádek do identity_demo
tabulka:
za Třetí, data dotazu z identity_demo
tabulky:
Jak můžete vidět, počáteční hodnota id
sloupce je 100, jak je uvedeno v klauzule identity.,
E) ZVÝŠIT O možnost příklad
za Prvé, změnit sloupec id identity_demo
tabulka, která zahrnuje jak START WITH
INCREMENT BY
možnosti.
za Druhé, vložit dva řádky do identity_demo
tabulky:
za Třetí, data dotazu z tabulky ověřit vložky:
Jak můžete vidět, první řádek má hodnotu id 10. Druhý řádek má id hodnotu 20., To je to, co jsme definovali pro sloupec id, který by měl začít s 10 a zvýšit o 10 pro nový řádek.
omezení sloupce identity Oracle
sloupce identity podléhají následujícím omezením:
- každá tabulka má jeden a pouze jeden sloupec identity.
- datový typ sloupce identity musí být číselný datový typ. datový typ definovaný uživatelem nesmí být používán s doložkou totožnosti.
- sloupec identity není zděděn příkazem
CREATE TABLE AS SELECT
., - sloupec identity nemůže mít jiné
DEFAULT
omezení. - šifrovací algoritmus pro šifrované sloupce identity lze odvodit, proto byste měli použít silný šifrovací algoritmus.
- inline omezení pro sloupec identity nesmí být v rozporu s
NOT NULL
NOT DEFERRABLE
omezení uvedl identity doložky.
v tomto tutoriálu jste se naučili používat sloupec identity Oracle, který vám umožní snadno definovat automaticky generovaný číselný sloupec pro tabulku.,
- byl tento tutoriál užitečný?
- YesNo