Klauzula CONSTRAINT

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

obmedzeniesa podobá index, hoci sa dá použiť aj na vytvorenie vzťah s inou tabuľkou.

Klauzula CONSTRAINT sa môže použiť v príkazoch ALTER TABLE a CREATE TABLE na vytvorenie alebo odstránenie obmedzení. Existujú dva typy klauzúl CONSTRAINT: jeden pre vytvorenie obmedzenia pre jedno pole a druhý na vytvorenie obmedzenia pre viaceré polia.

Poznámka : Databázový stroj programu Microsoft Access nepodporuje použitie OBMEDZENIA, alebo v ľubovoľnej jazyk definíciu údajov vyhlásenia s databázy programu Microsoft Access. Použite metódy DAO Create.

Syntax

Jednopoľové obmedzenie:

OBMEDZENIA názov {HLAVNÝ KĽÚČ | JEDINEČNÉ | NOT NULL |
ODKAZY foreignTabuľka [(cudzie pole1, cudzie pole2)]
[zapnuté KASKÁDOVÁ AKTUALIZÁCIA | NASTAVIŤ hodnotu NULL]
[zapnuté KASKÁDOVÉ ODSTRÁNENIE | NASTAVIŤ HODNOTU NULL]}

Viacpoľové obmedzenia:

OBMEDZENIA názov
{HLAVNÝ KĽÚČ (primary1[, primary2 [,...]]) |
JEDINEČNÉ (unique1[, unique2 [,...]]) |
NOT NULL (notnull1[, notnull2 [,...]]) |
CUDZÍ KĽÚČ [NO INDEX] (ref1[, ref2 [,...]]) ODKAZY na cudzia tabuľka [(cudzie pole1 [, cudzie pole2 [,...]])]
[Zapnuté KASKÁDOVÁ AKTUALIZÁCIA | NASTAVIŤ hodnotu NULL]
[zapnuté KASKÁDOVÉ ODSTRÁNENIE | NASTAVIŤ HODNOTU NULL]}

Klauzula CONSTRAINT pozostáva z týchto častí:

Časť

Popis

názov

Názov obmedzenia, ktoré sa má vytvoriť.

hlavnýkľúč1, hlavnýkľúč2

Názov poľa alebo polí, ktoré majú byť určené ako primárny kľúč.

jedinečné1, jedinečné2

Názov poľa alebo polí, ktoré majú byť určené ako jedinečný kľúč.

notnull1, notnull2

Názov poľa alebo polí, ktoré sú obmedzené na iné hodnoty než Null.

odkaz1, odkaz2

Názov poľa alebo polí cudzí kľúč, ktoré odkazujú na polia v cudzej tabuľke.

cudzia tabuľka

Názov cudzia tabuľka, ktorá obsahuje pole alebo polia určené cudzím poľom.

cudzie pole1, cudzie pole2

Názov poľa alebo polí v cudzej tabuľke určených odkazom1, odkazom2. Táto klauzula sa môže vynechať, ak je odkazované pole hlavným kľúčom cudzej tabuľky.


Poznámky

Syntax pre jednopoľové obmedzenie v klauzule definície poľa príkazu ALTER TABLE alebo CREATE TABLE použite ihneď za špecifikáciou typu údajov poľa.

Pre viacpoľové obmedzenie sa používa syntax kedykoľvek, keď použijete vyhradené slovo CONSTRAINT mimo klauzuly definície poľa v príkazoch ALTER TABLE alebo CREATE TABLE.

Pomocou klauzuly CONSTRAINT môžete nastaviť pole ako jeden z nasledujúcich typov obmedzenia:

  • Môžete použiť rezervované slovo UNIQUE na nastavenie poľa ako jedinečný kľúč. To znamená, že v tomto poli nemôžu mať dva záznamy v tabuľke rovnakú hodnotu. Ako jedinečné môžete nastaviť akékoľvek pole alebo zoznam polí. Ak sa nastaví ako jedinečné viacpoľové obmedzenie, musia byť jedinečné kombinované hodnoty všetkých polí v tabuľke, dokonca aj keď dva alebo viaceré záznamy majú rovnakú hodnotu iba v jednom z polí.

  • Rezervované slová PRIMARY KEY môžete použiť na nastavenie jedného poľa alebo množiny polí v tabuľke ako hlavného kľúča. Všetky hodnoty v hlavnom kľúči musia byť jedinečné a nesmú mať hodnotu Null a tabuľka môže mať iba jeden hlavný kľúč.

    Poznámka : Nenastavujte obmedzenie PRIMARY KEY pre tabuľku, ktorá už má hlavný kľúč – ak to spravíte, vyskytne sa chyba.

  • Môžete použiť rezervované slovo FOREIGN KEY na nastavenie poľa ako cudzieho kľúča. Ak hlavný kľúč cudzej tabuľky pozostáva z viac ako jedného poľa, musíte použiť viacpoľovú definíciu obmedzenia, zoznam všetkých odkazujúcich polí, názov cudzej tabuľky a názvy odkazujúcich polí v cudzej tabuľke v tom istom poradí, v akom sú odkazujúce polia uvedené. Ak sú odkazujúce polia hlavným kľúčom cudzej tabuľky, nemusíte špecifikovať odkazujúce polia. Predvolene sa mechanizmus databázy správa, ako keby hlavný kľúč cudzej tabuľky bol odkazovanými poľami.

    Obmedzenia cudzích kľúčov definujú konkrétne akcie, ktoré sa majú vykonať pri zmene hodnoty zodpovedajúceho hlavného kľúča:

  • Môžete určiť, aké akcie sa majú vykonať na cudzej tabuľke na základe zodpovedajúcej akcie vykonanej na hlavnom kľúči v tabuľke, kde je definovaná klauzula CONSTRAINT. Zvážte napríklad nasledovnú definíciu pre tabuľku Zákazníci:

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

Zvážte nasledovnú definíciu tabuľky Objednávky, ktorá definujú vzťah cudzieho kľúča odkazujúci na hlavný kľúč tabuľky Zákazníci:

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

Na cudzom kľúči sú definované klauzuly ON UPDATE CASCADE a ON DELETE CASCADE. Klauzula ON UPDATE CASCADE znamená, že ak sa aktualizuje identifikácia zákazníka (CustId) v tabuľke Zákazníci, aktualizácia sa kaskádovo rozšíri na tabuľku Objednávky. Každá hodnota obsahujúca zodpovedajúcu hodnotu identifikácie zákazníka sa aktualizuje novou hodnotou. Klauzula ON DELETE CASCADE znamená, že ak sa z tabuľky Zákazníci odstráni zákazník, všetky riadky v tabuľke Objednávky obsahujúce tú istú hodnotu identifikácie zákazníka sa tiež odstránia.

Zvážte nasledovnú odlišnú definíciu tabuľky Objednávky používajúcu akciu SET NULL a namiesto kaskádovej akcie 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

Klauzula ON UPDATE SET NULL znamená, že ak sa v tabuľke Zákazníci aktualizuje identifikácia zákazníka (CustId), zodpovedajúce hodnoty cudzieho kľúča v tabuľke Objednávky sa automaticky nastavia na hodnotu NULL. Podobne znamená klauzula ON DELETE SET NULL, že ak je zákazník odstránený z tabuľky Zákazníci, všetky zodpovedajúce cudzie kľúče v tabuľke Objednávky sa automaticky nastavia na hodnotu NULL.

Aby sa zabránilo automatickému vytvoreniu indexov pre cudzie kľúče, môže sa použiť modifikátor NO INDEX. Táto forma definície cudzieho kľúča sa môže použiť iba v prípadoch, kedy by boli výsledné hodnoty indexov často duplicitné. Tam, kde sú hodnoty v indexe cudzieho kľúča často duplicitné, môže byť použitie indexu menej efektívne, než jednoducho vykonanie prehľadania tabuľky. Zachovávanie tohto typu indexu s vloženými alebo odstránenými riadkami z tabuľky znižuje výkon a neposkytuje žiadnu výhodu.



Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×