Klauzule CONSTRAINT

Důležité :  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Omezení podobná Index, přestože lze také vytvořit Relace s jinou tabulkou.

Klauzule CONSTRAINT použijete v příkazech ALTER TABLE a vytvořit tabulku k vytvoření nebo odstranění omezení. Existují dva typy klauzule CONSTRAINT: jeden pro vytváření omezení na jedno pole a jeden pro vytváření omezení víc než jedno pole.

Poznámka : Databázový stroj Microsoft Access podporuje použití omezení, nebo na jakékoli příkazy data definition language, s databázemi aplikace Microsoft Access. Místo toho použijte metody DAO vytvořit.

Syntaxe

Podmínka pro jedno pole:

OMEZENÍ název {primární klíč | JEDINEČNÝ | NENÍ NULL |
Odkazy foreignTabulka [(cizí_pole1, cizí_pole2)]
[kaskádová aktualizace dál | NASTAVIT hodnotu NULL]
[kaskádové odstranění dál | NASTAVIT HODNOTU NULL]}

Více polích omezení:

OMEZENÍ název
{primární klíč (primární_klíč1[, primární_klíč2 [; …]]) |
JEDINEČNÝ (jedinečný_klíč1[, jedinečný_klíč2 [; …]]) |
Není NULL (pole_bez_hodnoty_null1[, notnull2 [; …]]) |
Cizí klíč [žádný INDEX] (Odkaz1[, odkaz2 [; …]]) ODKAZY na cizí tabulce Parametry [(cizí_pole1 [, cizí_pole2 [; …]])]
[Kaskádová aktualizace dál | NASTAVIT hodnotu NULL]
[kaskádové odstranění dál | NASTAVIT HODNOTU NULL]}

Klauzule CONSTRAINT má následující části:

Část

Popis

Jméno

Název omezení, které chcete vytvořit.

primární_klíč1, primární_klíč2

Název pole nebo polí označí Primární klíč.

jedinečný_klíč1, jedinečný_klíč2

Název pole nebo polí, která má být použit jako jedinečný klíč.

pole_bez_hodnoty_null1, pole_bez_hodnoty_null2

Název pole nebo polí, která jsou omezen na jinou hodnotu než null.

Odkaz1; odkaz2

Název Cizí klíč jedno nebo více polí, které odkazují na pole v jiné tabulce.

cizí tabulce Parametry

Název Cizí tabulka obsahující jedno nebo více polí nastavil foreignfield.

cizí_pole1, cizí_pole2

Název pole nebo polí v cizí tabulce Parametry nastavil Odkaz1; odkaz2. Tato klauzule můžete vynechat, pokud odkazované pole je primární klíč cizí tabulce.


Poznámky

Pomocí syntaxe pro omezení jednom poli v klauzuli definice pole příkaz ALTER TABLE nebo vytvořit tabulku bezprostředně po určení datového typu pole.

Používáte syntaxe pro omezení více polích pokaždé, když použijete Rezervované slovo omezení mimo klauzuli definice pole v příkaz ALTER TABLE nebo vytvořit tabulku.

Pomocí omezení můžete určit pole jako jednu z následujících typů omezení:

  • Pole určit jako jedinečný klíč můžete jedinečné rezervované slovo. To znamená, že dva záznamy v tabulce můžete mít stejnou hodnotu v tomto poli. Můžete omezit pole nebo seznam polí jako jedinečný. Pokud omezení více polích je označený jako jedinečný klíč, kombinované hodnoty všech polí v indexu musí být jedinečné, i když dva nebo více záznamů mít stejnou hodnotu v jenom jedno z polí.

  • PRIMÁRNÍ klíč vyhrazená slova umožňuje určit jednoho pole nebo sadu polí v tabulce jako primární klíč. Všechny hodnoty v primární klíč musí být jedinečný a není Nulla viditelné může mít jenom jeden primární klíč pro tabulku.

    Poznámka : Nejsou nastavené omezení primární klíč v tabulce obsahující primárního klíče. pokud neuděláte, dojde k chybě.

  • CIZÍ klíč vyhrazená slova umožňuje určit pole jako cizí klíč. Pokud cizí tabulka primární klíč tvořen maximálně jedno pole, je nutné použít definici více polích omezení seznamu všechny referenční pole, název cizí tabulka a názvy odkazovaných polí v tabulce cizího ve stejném pořadí zda jsou uvedeny referenční pole. Pokud odkazované jedno nebo více polí jsou cizí tabulka primární klíč, není nutné zadávat odkazované pole. Ve výchozím nastavení databázový stroj chová se jako primární klíč cizí tabulka je tato pole.

    Omezení cizího klíče definovat specifické akce, které se mají provést, když dojde ke změně odpovídajících hodnot primárních klíčů:

  • Můžete určit akce provádět v cizím tabulky založené na odpovídající akce provedené primární klíč v tabulce, na kterém je definován omezení. Například zvažte následující definice tabulku Zákazníci:

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

Zvažte následující definice tabulky objednávky, které definují vztah cizího klíče odkazování na primární klíč v tabulce 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

Kaskádová aktualizace dál a klauzuli kaskádové odstranění zapnuto, pokud jsou definovány na cizí klíč. Klauzule kaskádová aktualizace dál znamená, že pokud identifikátoru zákazníka (CustId) se aktualizuje v tabulce Zákazník, aktualizace kaskádových prostřednictvím v tabulce Orders. Každé objednávce obsahuje odpovídající hodnotu identifikátoru zákazníka bude automaticky aktualizován novou hodnotu. Klauzule kaskádové odstranění dál znamená, že pokud zákazník se odstraní z tabulky Zákazník, všechny řádky v tabulce objednávky obsahující stejnou hodnotu identifikátoru zákazníka budou odstraněny také.

Zvažte následující různých definice tabulky objednávky, akce nastavit hodnotu NULL místo kaskádové akce:

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

Klauzule na aktualizace nastavit hodnotu NULL znamená, že pokud identifikátoru zákazníka (CustId) se aktualizuje v tabulce Zákazník, odpovídající hodnoty cizího klíče v tabulce objednávky bude automaticky nastavena na hodnotu NULL. Dále odstraňte nastavit hodnotu NULL klauzule podobně znamená, že zákazníkovi po odstranění z tabulky Zákazník, všechny odpovídající cizího klíče v tabulce objednávky bude automaticky nastavena na hodnotu NULL.

Nechcete, aby automatické vytváření indexů pro cizích klíčů, mohou sloužit modifikátoru NO INDEX. Tento formulář definice cizího klíče bude použito pouze v případech, kdy by často duplicitní výsledných hodnot index. Pokud často duplicitní hodnoty v indexu cizího klíče, může být starší efektivní než jednoduše prohledání tabulky pomocí rejstříku. Udržovat tento typ index s řádky vložené a odstraněné z tabulky, snižuje výkon a neposkytuje žádnou výhodu.



Poznámka : Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×