rezumat: în acest tutorial, veți învăța cum să utilizați coloana identitate Oracle pentru a defini cu ușurință o coloană numerică generată automat pentru un tabel.
Introducere in Oracle coloană de identitate
Oracle 12c a introdus un nou mod care vă permite să definiți o coloană de identitate pentru o masă, care este similar cu AUTO_INCREMENT
coloană în MySQL sau IDENTITY
coloană în SQL Server.
coloana identitate este foarte utilă pentru coloana cheie primară surogat., Când inserați un rând nou în coloana identitate, Oracle generează automat și introduce o valoare secvențială în coloană.
Pentru a defini o coloană de identitate, utilizați identitatea clauza conform figurii de mai jos:
în Primul rând, GENERATED
cuvânt cheie este obligatorie.
În al doilea rând, puteți specifica o opțiune pentru a genera valori de identitate:
GENERATED ALWAYS
: Oracle generează întotdeauna o valoare pentru coloana identitate. Încercarea de a insera o valoare în coloana de identitate va cauza o eroare.,-
GENERATED BY DEFAULT
: Oracle generează o valoare pentru coloana identitate dacă nu oferiți nicio valoare. Dacă furnizați o valoare, Oracle va insera acea valoare în coloana identitate. Pentru această opțiune, Oracle va emite o eroare dacă introduceți o valoare nulă în coloana identitate. GENERATED BY DEFAULT ON NULL
: Oracle generează o valoare pentru coloana identitate dacă furnizați o valoare nulă sau nicio valoare.în al treilea rând, puteți avea o serie de opțiuni pentru coloana identitate.,-
START WITH initial_value
controlează valoarea inițială de utilizat pentru coloana de identitate. Valoarea inițială implicită este 1. -
INCREMENT BY internval_value
definește intervalul dintre valorile generate. În mod implicit, valoarea intervalului este 1. CACHE
definește un număr de valori pe care Oracle ar trebui să le genereze în prealabil pentru a îmbunătăți performanța. Utilizați această opțiune pentru coloana care are un număr mare de inserții.
Oracle identity column examples
Să luăm câteva exemple de utilizare a coloanelor Oracle identity.,
O) GENERATE ÎNTOTDEAUNA de exemplu,
următoarea declarație creează un tabel numit
identity_demo
care constă dintr-o coloană de identitate:următoarea declarație introduce un nou rând în
identity_demo
tabel:Pentru că nu specificați o valoare pentru
id
coloana, Oracle generate automat secvențială valoare începând de la 1.,următoarea declarație încercări de a introduce o valoare în
id
coloană de identitate:Oracle a emis o eroare:
Pentru că id coloana fost definite ca
GENERATED ALWAYS
, acesta nu a putut accepta orice valoare prezentată.,B) GENERATED BY DEFAULT example
Let’s change the
id
column toGENERATED BY DEFAULT
:The following statement inserts a new row into the
identity_demo
table:It worked as expected.,
următoarea declarație introduce un nou rând în
identity_demo
tabel cu o valoare prezentată pentruid
coloana:În acest exemplu, Oracle utilizate cu condiția ca valoarea și a introdus în tabel.,În primul rând, recreează
identity_demo
tabel al căruiid
coloană este definită ca o coloană de identitate cu valoarea inițială începe de la 100:în al Doilea rând, se introduce un rând în care să
identity_demo
tabel:în al Treilea rând, date de interogare de la
identity_demo
tabel:după Cum puteți vedea, valoarea inițială a
id
coloana este de 100 după cum se specifică în clauza de identitate.,E) INCREMENTA CU opțiune de exemplu,
în Primul rând, schimba id-ul coloană a
identity_demo
tabel care include atâtSTART WITH
șiINCREMENT BY
opțiuni.în al Doilea rând, introduce două rânduri în
identity_demo
tabel:în al Treilea rând, de interogare a datelor din tabel pentru a verifica insertii:
după Cum puteți vedea, în primul rând are valoarea id-ului 10. Al doilea rând are valoarea id 20., Aceasta este ceea ce am definit pentru coloana id care ar trebui să înceapă cu 10 și să crească cu 10 pentru noul rând.
Oracle identity column restrictions
coloanele de identitate sunt supuse următoarelor restricții:
- fiecare tabel are o singură coloană de identitate.
- tipul de date al coloanei de identitate trebuie să fie un tip de date numerice. tipul de date definit de utilizator nu este permis să se utilizeze cu clauza de identitate.
- coloana de identitate nu este moștenită de declarația
CREATE TABLE AS SELECT
., - coloana de identitate nu poate avea un alt
DEFAULT
constrângere. - algoritmul de criptare pentru coloanele de identitate criptate poate fi dedus, prin urmare, ar trebui să utilizați un algoritm de criptare puternic.
- inline constrângere a coloanei de identitate trebuie să nu intre în conflict cu
NOT NULL
șiNOT DEFERRABLE
constrângere declarat de identitate clauză.
în acest tutorial, ați învățat cum să utilizați coloana Oracle identity care vă permite să definiți cu ușurință o coloană numerică generată automat pentru un tabel.,
- a fost acest tutorial util?
- YesNo
-