Клауза CONSTRAINT

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

ограничение е подобно на индекс, въпреки че тя може да се използва за установяване релация с друга таблица.

Използване на ОГРАНИЧЕНИЕТО клаузата в ПРОМЕНЯ ТАБЛИЦИТЕ и създаване на отчети за създаване или изтриване на ограниченията. Има два типа на ОГРАНИЧЕНИЕТО клаузи: една за създаване на ограничението на едно и също поле и един за създаване на ограничението на повече от едно поле.

Забележка : База данни на Microsoft Access не поддържа използването на ограничение, или някоя от езика отчети данни дефиниция с бази данни на Microsoft Access. Вместо това използвайте метода за създаване на DAO.

Синтаксис

Единично поле с ограничения:

ОГРАНИЧЕНИЕ име {ПЪРВИЧЕН ключ | УНИКАЛНИ | НЕ NULL |
ПРЕПРАТКИ foreigntable [(foreignfield1, foreignfield2)]
[вкл АКТУАЛИЗИРАЙ КАСКАДНО | ЗАДАВАНЕ на NULL]
[вкл Изтрий КАСКАДНО | ЗАДАВАНЕ НА NULL]}

Няколко полета с ограничения:

Имена ограничение
{ПЪРВИЧЕН ключ (primary1[, primary2 [,...]]) |
УНИКАЛНИ (unique1[, unique2 [,...]]) |
Не NULL (notnull1[, notnull2 [,...]]) |
Външен ключ [NO INDEX] (препр1[, препр2 [,...]]) Препратки към foreigntable [(foreignfield1 [, foreignfield2 [,...]])]
[Вкл АКТУАЛИЗИРАЙ КАСКАДНО | ЗАДАВАНЕ на NULL]
[вкл Изтрий КАСКАДНО | ЗАДАВАНЕ НА NULL]}

Клауза CONSTRAINT има следните части:

Част

Описание

Име

Името на ограничението за да се създаде.

primary1, primary2

Името на полето или полетата за определена първичен ключ.

unique1, unique2

Името на полето или полетата, за да бъдат определени като уникален ключ.

notnull1, notnull2

Името на полето или полетата, които са ограничени до непразни стойности.

препр1, препр2

Името на външен ключ полето или полетата, които препращат към полета в друга таблица.

foreigntable

Името на външна таблица , съдържаща полето или полетата, зададен с foreignfield.

foreignfield1, foreignfield2

Името на полето или полетата в foreigntable , зададен с препр1, препр2. Можете да пропуснете тази клауза, ако указаното поле е първичен ключ на foreigntable.


Забележки

Използвайте синтаксиса за единично поле ограничението в клаузата дефиниция на поле от таблица, ПРОМЕНЯТ или създаване на таблица команда веднага след определяне на типа на данните на полето.

Можете да използвате следния синтаксис за няколко полета ограничение, когато използвате запазена дума ОГРАНИЧЕНИЯТА извън клауза дефиниция на поле в инструкция ALTER таблица или създаване на таблица.

Използване на ОГРАНИЧЕНИЕТО можете да определите поле като една от следните типове ограничения:

  • Можете да използвате уникални запазена дума, за да посочите поле като уникален ключ. Това означава, че няма два записа в таблицата по-може да има една и съща стойност в това поле. Можете да ограничите всяко поле или списък с полета като уникални. Ако няколко полета ограничението е определен като уникален ключ, комбиниран стойностите на всички полета в индекса трябва да бъде уникална, дори ако две или повече записи имат една и съща стойност в само едно от полетата.

  • Можете да използвате ПЪРВИЧЕН ключ запазени думи, за да посочите едно поле или набор от полета в таблица като първичен ключ. Всички стойности в първичния ключ трябва да е уникално и не Nullи може да има само един първичен ключ за таблица.

    Забележка : Не зададете ограничения на ПЪРВИЧЕН ключ на таблица, който вече има първичен ключ; Ако направите, възниква грешка.

  • Можете да използвате външен ключ запазени думи, за да посочите поле като външен ключ. Ако чужд таблицата първичен ключ се състои от повече от едно поле, трябва да използвате няколко полета ограничение дефиниция, списък на всички към формулата полета, името на външна таблица и имената на справочни полета в таблицата чужд в същия ред дали са изброени полетата към формулата. Ако посочената полето или полетата са външна таблица първичен ключ, не е необходимо да укажете справочни полета. По подразбиране ядрото на базата данни се държи сякаш външна таблица първичният ключ е справочни полета.

    Ограничения за чужд ключ определи конкретни действия, за да се извършват, когато съответните първичният ключ е променено:

  • Можете да зададете действия, за да се изпълняват на външна таблица въз основа на съответстващо действие на първичен ключ в таблицата, на който е дефиниран ОГРАНИЧЕНИЕТО. Например Разгледайте следната дефиниция за таблица клиенти:

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

Разгледайте следната дефиниция на таблицата поръчки, която определя чужд ключ релация обозначаване на първичния ключ на таблица "клиенти":

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

АКТУАЛИЗИРАЙ КАСКАДНО вкл и Включете изтриване КАСКАДНО клауза се дефинират в външен ключ. Включете актуализирате КАСКАДНО клауза означава, че ако един клиент идентификатор (CustId) се актуализира в таблицата клиент, актуализацията ще бъде каскадно чрез таблица "поръчки". Всяка поръчка, съдържащ съответната стойност за идентификатор на клиент ще се актуализира автоматично с новата стойност. ЗА изтриване на КАСКАДНО клауза означава, че ако клиент се изтрива от таблицата клиент, всички редове в таблицата "поръчки", които съдържат един и същ клиент идентификатор стойност също ще да бъдат изтрити.

Имайте предвид следните различни дефиницията на таблица поръчки, като използвате действието за ЗАДАВАНЕ на 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

Клаузата ON актуализация ЗАДАВАНЕ на NULL означава, че ако един клиент идентификатор (CustId) се актуализира в таблицата клиент, съответните стойности за чужд ключ в таблицата поръчки автоматично ще бъде зададено на NULL. По същия начин клаузата за изтриване на ЗАДАВАНЕ на NULL означава, че ако клиент се изтрива от таблицата клиент, всички съответните външни ключове в таблица "поръчки" автоматично ще бъде зададено на NULL.

За да предотвратите автоматичното създаване на индекси за чужди ключове, може да се използва променящи без индекс. Тази форма на чужд ключ дефиниция трябва да се използва само в случаите, когато получените стойности на индекса ще бъдат често дублирани. Когато често са дублирани стойности в чужд ключ индекс, с помощта на индекс може да бъде по-ефективно от просто извършване на сканиране на таблица. Поддържане на този тип на индекса, с редове вмъкнати и изтрити от таблицата, понижава производителността и не предоставя никаква полза.



Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×