Oppsummering: i denne opplæringen vil du lære hvordan du bruker Oracle identity-kolonnen for å enkelt angi en automatisk generert numeriske kolonnen for en tabell.
Introduksjon til Oracle identity kolonne
Oracle 12c innført en ny måte som gir deg mulighet til å definere en identitet kolonnen for en tabell, som er lik AUTO_INCREMENT
kolonne i MySQL eller IDENTITY
kolonne i SQL Server.
identiteten kolonnen er veldig nyttig for surrogat primærnøkkel kolonne., Når du setter inn en ny rad i identitet kolonnen, Oracle auto-genererer og sett inn en sekvensiell verdi i kolonnen.
for Å definere en identitet-kolonnen, kan du bruke identitet punkt som vist nedenfor:
Første GENERATED
søkeord er obligatorisk.
Andre, kan du angi et alternativ til å generere identitet verdier:
-
GENERATED ALWAYS
: Oracle alltid genererer en verdi for identitet kolonne. Forsøk å sette inn en verdi i den identitet kolonnen vil føre til en feil., -
GENERATED BY DEFAULT
: Oracle genererer en verdi for identitet kolonnen hvis du ikke gir noen verdi. Hvis du angir en verdi, Oracle vil sette denne verdien til identitet kolonne. For dette alternativet, Oracle vil gi en feilmelding hvis du setter inn en NULL-verdi i identiteten kolonne. -
GENERATED BY DEFAULT ON NULL
: Oracle genererer en verdi for identitet kolonnen hvis du oppgir en UGYLDIG verdi eller ingen verdi i det hele tatt.
Tredje, du kan ha en rekke alternativer for identitet kolonne.,
-
START WITH initial_value
kontroller den opprinnelige verdien til bruk for identitet kolonne. Standard første verdi er 1. -
INCREMENT BY internval_value
angir intervallet mellom generert verdier. Standard intervall verdi er 1. -
CACHE
definerer en rekke verdier som Oracle skal generere forhånd for å forbedre ytelsen. Du bruker dette alternativet for kolonnen som har et høyt antall innlegg.
Oracle identity kolonne eksempler
La oss ta noen eksempler på bruk av Oracle identity kolonner.,
A) GENERERT ALLTID eksempel
følgende uttalelse lager en tabell som heter identity_demo
som består av en identitet kolonne:
følgende uttalelse setter inn en ny rad i identity_demo
tabell:
Fordi vi ikke har angitt en verdi for id
kolonne, Oracle automatisk generert en sekvensiell verdi fra 1.,
følgende uttalelse forsøk på å sette inn en verdi i id
identitet kolonne:
Oracle utstedt en feil:
Fordi id-kolonnen ble definert som GENERATED ALWAYS
, det kunne ikke godta en gitt verdi.,
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.,
følgende uttalelse setter inn en ny rad i identity_demo
bordet med en gitt verdi for id
kolonne:
I dette eksempelet, Oracle brukt gitt verdi og satt den på bordet.,Første, gjenskaper identity_demo
tabell med id
kolonne er definert som identitet kolonne med den første verdien starter fra 100:
Andre, sette inn en rad inn til identity_demo
tabell:
Tredje, spørring data fra identity_demo
tabell:
Som du kan se, den første verdien av id
kolonnen er 100 som er angitt i identitet punkt.,
E) ØKNING AV alternativet eksempel
Først, endre id-kolonne av identity_demo
tabell som inneholder både START WITH
og INCREMENT BY
valg.
Andre, sett inn to rader i identity_demo
tabell:
Tredje, spørring data fra tabellen for å bekrefte innlegg:
Som du kan se, den første raden har id-verdien 10. Den andre raden har id-verdien 20., Dette er hva vi definert for id-kolonne som skal starte med 10 og øke med 10 for den nye raden.
Oracle identity kolonne restriksjoner
identiteten kolonner er underlagt følgende restriksjoner:
- Hver tabell har ett og bare ett identitet kolonne.
- data type identitet kolonne må være en numerisk datatype. brukerdefinert datatype er ikke tillatt å bruke med identitet punkt.
- identiteten kolonnen er ikke arvet av
CREATE TABLE AS SELECT
uttalelse., - identiteten kolonnen ikke kan ha en annen
DEFAULT
tvang. - krypteringsalgoritme for kryptert identitet kolonner kan utledes derfor bør du bruke en sterk krypteringsalgoritme.
- inline begrensningen av identitet kolonne må ikke komme i konflikt med
NOT NULL
ogNOT DEFERRABLE
begrensningen fremgår av identitet punkt.
I denne opplæringen, har du lært hvordan du bruker Oracle identity kolonne som gjør at du lett kan angi en automatisk generert numeriske kolonnen for en tabell.,
- Var denne opplæringen nyttig?
- YesNo