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 SELECTuttalelse.,
  • 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 og NOT 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

Articles

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *