Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.

ograničenje je nalik na indeks, iako može da se koristi i kako bi se uspostavio odnos sa drugom tabelom.

Odredbu CONSTRAINT koristite u izrazima ALTER TABLE i CREATE TABLE kako biste pravili ili brisali ograničenja. Postoje dva tipa odredbi CONSTRAINT: jedan za pravljenje ograničenja za jedno polje i drugi za pravljenje ograničenja za više polja.

Napomena: Mašina Microsoft Access baze podataka ne podržava korišćenje odredbe CONSTRAINT niti bilo kojih izraza jezika za definisanje podataka uz baze podataka koje nisu Microsoft Access baze podataka. Umesto toga koristite „DAO Create“ metode.

Sintaksa

Ograničenje za jedno polje:

CONSTRAINT ime {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES sporednatabela [(sporednopolje1, sporednopolje2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Ograničenje za više polje:

CONSTRAINT ime
{PRIMARY KEY (primarno1[, primarno2 [, ...]]) |
UNIQUE (jedinstveno1[, jednistveno2 [, ...]]) |
NOT NULL (nijebezvrednosti1[, nijebezvrednosti2 [, ...]]) |
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, ...]]) REFERENCES sporednatabela [(sporednopolje1 [, sporednopolje2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Odredba CONSTRAINT ima sledeće delove:

Deo

Opis

ime

Ime ograničenja koje se pravi.

primarno1, primarno2

Imena polja kojima se dodeljuje primarni ključ.

jedinstveno1, jedinstveno2

Imena polja koja se dodeljuju kao jedinstveni ključ.

nijebezvrednosti1, nijebezvrednosti2

Imena polja koja su ograničena na vrednosti koje nemaju vrednost.

ref1, ref2

Ime spoljni ključ polja koja upućuju na polja u drugoj tabeli.

sporednatabela

Ime spoljna tabela koje sadrži polja koja navodi sporednopolje.

sporednopolje1, sporednopolje2

Ime polja u sporednojtabeli koja navode ref1, ref2. Tu odredbu možete da izostavite ako je polje na koje se upućuje primarni ključ sporednetabele.


Napomene

Sintaksu za ograničenje za jedno polje u odredbi definicije polja izraza ALTER TABLE ili CREATE TABLE možete da koristite odmah posle navođenje tipa podataka polja.

Sintaksu za ograničenje za više polja možete da koristite kad god koristite rezervisana reč CONSTRAINT izvan odredbe definicije polja u izrazu ALTER TABLE ili CREATE TABLE.

Pomoću izraza CONSTRAINT možete da odredite polje kao jedan od sledećih tipova ograničenja:

  • Rezervisanu reč UNIQUE možete da koristite da biste odredili polje kao jedinstveni ključ. To znači da dva zapisa u tabeli ne mogu da imaju istu vrednost u ovom polju. Možete da ograničite bilo koje polje ili listu polja kao jedinstvene. Ako se ograničenje za više polja odredi kao jedinstveni ključ, kombinovane vrednosti svih polja u indeksu moraju da budu jedinstvene, čak i ako dva ili više zapisa imaju istu vrednost u samo jednom od polja.

  • Rezervisane reči PRIMARY KEY možete da koristite kako biste odredili jedno polje ili skup polja u tabeli kao primarni ključ. Sve vrednosti u primarnom ključu moraju da budu jedinstvene i ne Bez vrednosti i može da postoji samo jedan primarni ključ za tabelu.

    Napomena: Nemojte da postavite ograničenje PRIMARY KEY za tabelu koja već ima primarni ključ. Ako to uradite, dolazi do greške.

  • Rezervisane reči FOREIGN KEY možete da koristite kako biste odredili polje kao sporedni ključ. Ako se primarni ključ sporedne tabele sastoji iz više polja, morate da koristite definiciju ograničenja za više polja, koja navodi sva polja za referencu, ime sporedne tabele i imena referentnih polja u sporednoj tabeli istim redosledom kojim su navedena polja za referencu. Ako su referentna polja primarni ključ sporedne tabele, ne morate da ih navodite. Mašina baze podataka podrazumevano se ponaša kao da su referentna polja primarni ključ sporedne tabele.

    Ograničenja sporednog ključa definišu određene radnje koje se izvršavaju kada se promeni vrednost odgovarajućeg primarnog ključa:

  • Možete da navedete radnje koje se izvršavaju nad sporednom tabelom na osnovu odgovarajuće radnje koju vrši primarni ključ u tabeli u kojoj je definisan izraz CONSTRAINT. Na primer, razmotrite sledeću definiciju za tabelu „Klijenti“:

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

Razmotrite sledeću definiciju tabele „Porudžbine“, koja definiše relaciju sporednog ključa koja upućuje na primarni ključ tabele „Klijenti“:

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

Obe odredbe ON UPDATE CASCADE i ON DELETE CASCADE definisane su u sporednom ključu. Odredba ON UPDATE CASCADE znači da ako se identifikator klijenta (CustId) ažurira u tabeli „Klijent“, ažuriranje se kaskadno primenjuje u tabeli „Porudžbine“. Svaka porudžbina koja sadrži odgovarajuću vrednost identifikatora klijenta ažurira se automatski sa novom vrednošću. Odredba ON DELETE CASCADE znači da se ako se klijent izbriše iz tabele „Klijent“, brišu i svi redovi u tabeli „Porudžbine“ koji sadrže istu vrednost identifikatora klijenta.

Razmotrite sledeću različitu definiciju tabele „Porudžbine“ koja koristi radnju SET NULL umesto radnje CASCADE:

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

Odredba ON UPDATE SET NULL znači da ako se identifikator klijenta (CustId) ažurira u tabeli „Klijent“, odgovarajuće vrednosti sporednog ključa u tabeli „Porudžbine“ automatski se postavljaju na vrednost NULL. Na sličan način, odredba ON DELETE SET NULL znači da se svi sporedni ključevi u tabeli „Porudžbine“ automatski postavljaju na vrednost NULL ako se klijent izbriše iz tabele „Klijent“.

Da biste sprečili automatsko pravljenje indeksa za sporedne ključeve, možete da koristite modifikator NO INDEX. Ovaj oblik definicije sporednog ključa trebalo bi da koristite samo u slučajevima kada bi se tako dobijene vrednosti indeksa često duplirale. Kada se vrednosti sporednog indeksa često dupliraju, korišćenje indeksa može da bude manje efikasno od jednostavnog skeniranja tabele. Održavanje tog tipa indeksa, sa redovima umetnutim u tabelu i izbrisanim iz nje, umanjuje performanse i ne pruža nikakve pogodnosti.



Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×