Uvjet CONSTRAINT

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

ograničenje je slično indeks iako se može koristiti i za uspostavljanje odnos s drugom tablicom.

Uvjet CONSTRAINT koristi se u iskazima ALTER TABLE i CREATE TABLE za stvaranje ili brisanje ograničenja. Postoje dvije vrsta uvjeta CONSTRAINT: za stvaranje ograničenja na pojedinačnom polju i za stvaranje ograničenja na više polja.

Napomena : Modul za baze podataka programa Microsoft Access ne podržava korištenje OGRANIČENJA ili bilo koje naredbe jezik definicija podataka s bazama podataka koje nisu iz programa Microsoft Access. Umjesto toga koristite DAO metode stvaranja.

Sintaksa

Ograničenje pojedinačnog polja:

OGRANIČENJA naziv {PRIMARNI KLJUČ | JEDINSTVENI | NIJE NULL |
REFERENCE foreignTablica [(vanjskopolje1, vanjskopolje2)]
[KASKADNO AŽURIRANJE Uključeno | POSTAVLJANJE NULL]
[KASKADNO BRISANJE Uključeno | POSTAVLJANJE NULL]}

Ograničenje višestrukih polja:

OGRANIČENJA naziv
{PRIMARNI KLJUČ (primarno1[, primarno2 [,...]]) |
JEDINSTVENI (jedinstveno1[, jedinstveno2 [,...]]) |
NIJE NULL (nijenull1[, notnull2 [,...]]) |
VANJSKOG KLJUČA [BEZ INDEKSA] (ref1[, ref2 [,...]]) REFERENCE vanjska tablica [(vanjskopolje1 [, vanjskopolje2 [,...]])]
[KASKADNO AŽURIRANJE Uključeno | POSTAVLJANJE NULL]
[KASKADNO BRISANJE Uključeno | POSTAVLJANJE NULL]}

Uvjet CONSTRAINT sastoji se od sljedećih dijelova:

Dio

Opis

naziv

Nazivi ograničenja za stvaranje.

primarno1, primarno2

Nazivi polja za označavanje primarni ključ.

jedinstveno1, jedinstveno2

Nazivi polja za označavanje jedinstvenim ključem.

nijenull1, nijenull2

Naziv polja koja su ograničeni vrijednosti koje nisu Null.

ref1, ref2

Naziv vanjski ključ polja koja upućuju na polja u drugoj tablici.

vanjska tablica

Naziv vanjska tablica koja sadrži polja koja određuje vanjska tablica.

vanjskopolje1, vanjskopolje2

Naziv polja u vanjskoj tablici koja određuju ref1 i ref2. Ako je polje na koje se upućuje primarni ključ vanjske tablice, ovaj uvjet možete izostaviti.


Napomene

Sintaksu za ograničenje pojedinačnog polja u uvjetu definicije polja naredbe ALTER TABLE ili CREATE TABLE koristite neposredno nakon određivanja vrste podataka polja.

Sintaksu za ograničenje višestrukih polja možete upotrijebiti prilikom svakog korištenja rezervirana riječ CONSTRAINT izvan uvjeta definicije polja u naredbi ALTER TABLE ili CREATE TABLE.

Koristeći CONSTRAINT polje možete označiti kao neku od sljedećih vrsta ograničenja:

  • Za označavanje polja kao jedinstvenog ključa možete upotrijebiti rezerviranu riječ UNIQUE. To znači da u tom polju dva zapisa u tablici ne mogu imati istu vrijednost. Bilo koje polje ili popis polja možete ograničiti kao jedinstveno. Ako je ograničenje višestrukih polja označeno kao jedinstveni ključ, kombinirane vrijednosti svih polja u indeksu moraju biti jedinstvene, čak i ako dva ili više zapisa imaju istu vrijednost u samo jednom polju.

  • Korištenjem rezerviranih riječi PRIMARY KEY polje ili skup polja u tablici možete označiti kao primarni ključ. Sve vrijednosti u primarnom ključu moraju biti jedinstvene, ne smiju biti Null i za tablicu mora postojati samo jedan primarni ključ.

    Napomena : Ograničenje PRIMARY KEY nemojte postavljati na tablicu koja već sadrži primarni ključ; ako to napravite, dolazi do pogreške.

  • Korištenjem rezerviranih riječi FOREIGN KEY polje možete označiti kao vanjski ključ. Ako se primarni ključ vanjske tablice sastoji od više polja, morate koristiti definiciju ograničenja višestrukih polja u kojoj su popisana sva polja reference, naziv vanjske tablice i nazivi polja na koja se upućuje u vanjskoj tablici istim redoslijedom kojim su popisana polja koja reference. Ako su polje ili polja na koja se upućuje primarni ključ vanjske tablice, polja na koja se upućuje se me moraju određivati. Prema zadanim postavkama modul baze podataka ponaša se kao da su polja n akoja se upućuje primarni ključ vanjske tablice.

    Ograničenja vanjskog ključa definiraju određene akcije koje će se izvesti prilikom promjene odgovarajuće vrijednosti primarnog ključa:

  • Akcije za izvođenje na vanjskoj tablici možete odrediti na osnovi akcije izvedene na primarnom ključu u tablici prema kojoj je CONSTRAINT definiran. Na primjer, razmotrite sljedeću definiciju za tablicu Kupci:

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

Razmotrite sljedeću definiciju tablice Narudžbe koja definira odnos vanjskog ključa koji upućuje na primarni ključ tablice Kupci:

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

Uvjeti ON UPDATE CASCADE i ON DELETE CASCADE definirani su na temelju vanjskog ključa. Ako je postavljen uvjet ON UPDATE CASCADE, prilikom ažuriranja identifikatora klijenta (IdKlijenta) ažuriranje će se kaskadno proširiti kroz tablicu Narudžbe. Svaka narudžba koja sadrži odgovarajuću vrijednost identifikatora klijenta automatski će se ažurirati novom vrijednosti. Ako je postavljen uvjet ON DELETE CASCADE, prilikom brisanja klijenta iz tablice Klijenti izbrisat će se i svaki redak u tablici Narudžbe koji sadrži istu vrijednost identifikatora klijenta.

Razmotrite sljedeću definiciju tablice Narudžbe u kojoj se umjesto akcije CASCADE koristi akcija 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

Ako je postavljen uvjet ON UPDATE SET NULL, prilikom ažuriranja identifikatora klijenta (IdKlijenta) u tablici Klijenti odgovarajuće vrijednosti vanjskog ključa u tablici Narudžbe automatski se postavlja na NULL. Ako je postavljen uvjet ON DELETE SET NULL, prilikom brisanja klijenta iz tablice Klijent svi odgovarajući vanjski ključevi u tablici Narudžbe automatski se postavljaju na NULL.

Za sprečavanje automatskog stvaranja indeksa za vanjske ključeve može se upotrijebiti modifikator NO INDEX. Ovaj oblik definicije vanjskog ključa trebalo bi koristiti samo u slučajevima u kojima će se rezultirajuće vrijednosti indeksa često duplicirati. Kad se vrijednosti u indeksu vanjskog ključa često dupliciraju, korištenje indeksa može biti manje djelotvorno od jednostavnog skeniranja tablice. Održavanje ove vrste indeksa s umetanjem i brisanjem redaka iz tablice smanjuje performanse i ne donosi nikakve prednosti.



Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×