Stavek CONSTRAINT

Pomembno : Besedilo članka je prevedeno strojno. Glejte zavrnitev odgovornosti. Angleško različico tega članka najdete tukaj .

Stavek omejitev je podoben Kazalo, vendar ga je mogoče uporabiti tudi za vzpostavljanje relacija z drugo tabelo.

Stavek CONSTRAINT se uporablja v izjavah ALTER TABLE in CREATE TABLE za ustvarjanje ali brisanje omejitev. Obstajata dve vrsti stavkov CONSTRAINT: ena za ustvarjanje omejitve v posameznem polju in ena za ustvarjanje omejitve v več kot enem polju.

Opomba : Mehanizem zbirke podatkov programa Microsoft Access ne podpira uporabe OMEJITEV, ali katere koli podatke definicije jezik izjave, z Microsoft Accessove zbirke podatkov. Namesto tega uporabite metode za ustvarjanje DAO.

Sintaksa

Omejitev za eno polje:

OMEJITVE ime {PRIMARNI KLJUČ | ENOLIČNO | NOT NULL |
SKLICI foreignTabela [(foreignfield1, foreignfield2)]
[KASKADNO POSODABLJANJE Vklopljeno | NASTAVITEV NIČELNE]
[KASKADNO BRISANJE na | NASTAVITEV NIČELNE]}

Večpoljna omejitev:

OMEJITVE ime
{PRIMARNI KLJUČ (primary1[, primary2 [;...]]) |
ENOLIČNI (unique1[, unique2 [;...]]) |
NOT NULL (notnull1[, notnull2 [;...]]) |
TUJI KLJUČ [BREZ INDEKS] (sklic1[, sklic2 [;...]]) SKLICI tujetabele [(foreignfield1 [, foreignfield2 [;...]])]
[KASKADNO POSODABLJANJE Vklopljeno | NASTAVITEV NIČELNE]
[KASKADNO BRISANJE na | NASTAVITEV NIČELNE]}

Stavek CONSTRAINT je sestavljen iz teh delov:

Del

Opis

ime

Ime omejitve, ki jo želite ustvariti.

primarni1, primarni2

Imena polj, ki jih želite določiti za primarni ključ.

enolični1, enolični2

Imena polj, ki jih želite določiti kot enolični ključ.

niničelna1, niničelna2

Ime polja ali polj, ki so omejena na vrednosti, ki niso ničelne.

sklic1, sklic2

Imena polj s tuji ključ, ki se sklicujejo na polja v drugi tabeli.

tujatabela

Ime tuja tabela s polji, ki so navedeni v tujem polju.

tujepolje1, tujepolje2

Imena polj v tuji tabeli, ki je navedena v sklicu1 in sklicu2. Ta stavek lahko izpustite, če je sklicno polje primarni ključ tujetabele.


Opombe

Sintakso za omejitev za eno polje uporabite v stavku za definicijo polja izjave ALTER TABLE ali CREATE TABLE, takoj za specifikacijo podatkovnega tipa polja.

Sintakso omejitve za več polj uporabite vedno, ko rezervirana beseda CONSTRAINT ne uporabite v stavku za definicijo polja v izjavi ALTER TABLE ali CREATE TABLE.

Stavek CONSTRAINT je mogoče uporabiti za določanje polja kot eno od teh vrst omejitev:

  • Rezervirano besedo UNIQUE lahko uporabite za določitev polja kot enoličnega ključa. To pomeni, da dva zapisa v tabeli ne moreta v tem polju imeti iste vrednosti. Katerokoli polje ali seznam polj lahko omejite na enolično. Če je omejitev za več polj dodeljena kot enolični ključ, morajo biti sestavljene vrednosti vseh polj v indeksu enolične, četudi dva zapisa ali več njih imajo isto vrednost v samo enem od polj.

  • Rezervirane besede PRIMARY KEY je mogoče uporabiti za določanje polja ali nabora polj v tabeli kot primarni ključ. Vse vrednosti v primarnem ključu morajo biti enolične in ne smejo biti ničelne in v eni tabeli je lahko samo en primarni ključ.

    Opomba : V tabeli, ki že ima primarni ključ, ne nastavite omejitve PRIMARY KEY. Če to naredite, pride do napake.

  • Rezervirane besede FOREIGN KEY je mogoče uporabiti za določanje polja kot tuji ključ. Če je za primarni ključ tuje tabele določenih več polj, uporabite definicijo omejitve za več polj, ki vsa sklicna polja, ime tuje tabele in imena sklicnih polj v tuji tabeli navede v enakem vrstnem redu kot so navedena sklicna polja. Če so sklicna polja primarni ključ tuje tabele, jih ni treba navesti. Mehanizem zbirke podatkov privzeto obravnava primarni ključ tuje tabele kot sklicna polja.

    Omejitve tujega ključa definirajo določena dejanja, ki se izvedejo, ko se spremeni vrednost ustreznega primarnega ključa:

  • Določite lahko dejanja, ki se izvajajo v tuji tabeli in temeljijo na ustreznem dejanju, izvedenem na primarnem ključu v tabeli z definiranim stavkom CONSTRAINT. Pretehtajte na primer spodnjo definicijo za tabelo »Customers«:

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

Ogledate si lahko definicijo tabele »Orders«, ki določa relacijo tujega ključa, ki se sklicuje na primarni ključ tabele »Customers«:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

Stavka ON UPDATE CASCADE in ON DELETE CASCADE sta definirana na tujem ključu. Stavek ON UPDATE CASCADE pomeni, da bo, če je identifikator stranke (CustId) posodobljen v tabeli »Customer«, posodobitev izvedena kaskadno skozi tabelo »Orders«. Vsako naročilo, ki vsebuje ustrezno vrednost identifikatora stranke, bo samodejno posodobljeno z novo vrednostjo. Stavek ON DELETE CASCADE pomeni, da bodo, če je stranka izbrisana iz tabele »Customer«, prav tako izbrisane vse vrstice v tabeli »Orders«, ki vsebujejo enako vrednost identifikatora stranke.

Ogledate si lahko drugačno definicijo tabele »Orders«, ki namesto dejanja CASCADE uporablja dejanje SET NULL:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

Stavek ON UPDATE SET NULL pomeni, da bodo, če je identifikator stranke (CustId) posodobljen v tabeli »Customer«, ustrezne vrednosti tujega ključa v tabeli »Orders« samodejno postavljene na NULL. Podobno pomeni stavek ON DELETE SET NULL, da bodo, če bo stranka izbrisana iz tabele »Customer«, vsi ustrezni tuji ključi v tabeli »Orders« samodejno postavljeni na NULL.

Če želite preprečiti samodejno ustvarjanje indeksov za tuje ključe, lahko uporabite prilagodilnik NO INDEX. To obliko definicije tujega ključa naj bi uporabljali samo v primerih, ko se dobljene indeksne vrednosti pogosto podvojujejo. V primerih, ko se vrednosti indeksa tujega ključa pogosto podvojujejo, je uporaba indeksa manj učinkovita od enostavnega skeniranja tabele. Ohranjanje te vrste indeksa, z vrsticami, vstavljenimi in izbrisanimi iz tabele, slabša učinkovitost delovanja in ne prinaša nobene prednosti.



Opomba : Strojni prevod – zavrnitev odgovornosti: Ta članek je bil preveden z računalniškim programom brez človeškega posredovanja. Microsoft skuša s strojno prevedenimi članki vsebino o Microsoftovih izdelkih, storitvah in tehnologijah približati osebam, ki ne razumejo angleščine. Ker je bil članek strojno preveden, so lahko v njem jezikovne, slovnične in pravopisne napake.

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×