Продвижение сайта по поисковым запросам, контекстная реклама, качественный копирайтинг и рерайтинг, создание сайта под ключ, QA процедуры и аудит в ИТ, бизнес анализ в Киеве, Украина.

Поиск

Админ

Внешний ключ как ограничение столбцов sql


Внешний ключ как ограничение столбцов sql

Вариант ограничения столбца ограничением FOREIGN KEY — по другому называется — ссылочное ограничение (REFERENCES), так как он фактически не содержит в себе слов FOREIGN KEY, а просто использует слово REFERENCES, и далее имя родительского ключа, подобно этому:

CREATE TABLE Customers (
cnum  integer NOT NULL PRIMARY KEY,
cname char(10),
city  char(10),
snum  integer REFERENCES Salespeople (snum));

Вышеупомянутое определяет Customers.snum как внешний ключ, у которого родительский ключ — это Salespeople.snum. Это эквивалентно такому ограничению таблицы:

FOREIGN KEY (snum) REGERENCES Salespeople (snum)

Не указывать список столбцов первичных ключей

Используя ограничение FOREIGN KEY таблицы или столбца, вы можете не указывать список столбцов родительского ключа, если родительский ключ имеет ограничение PRIMARY KEY. Естественно, в случае ключей со многими полями, порядок столбцов во внешних и первичных ключах должен совпадать, и, в любом случае, принцип совместимости между двумя ключами все еще применим. Например, если мы поместили ограничение PRIMARY KEY в поле snum таблицы Продавцов, мы могли бы использовать его как внешний ключ в таблице Заказчиков (подобно предыдущему примеру) в этой команде:

CREATE TABLE Customers (
cnum  integer NOT NULL PRIMARY KEY,
cname char(10),
city  char(10),
snum  integer REFERENCES Salespeople);

Это средство встраивалось в язык, чтобы поощрять вас использовать первичные ключи в качестве родительских ключей.

Как справочная целостность ограничивает значения родительского ключа

Поддержание справочной целостности требует некоторых ограничений на значения, которые могут быть представлены в полях, объявленных как внешний ключ и родительский ключ. Родительский ключ должен быть структурен, чтобы гарантировать, что каждое значение внешнего ключа будет соответствовать одной указанной строке. Это означает, что он (ключ) должен быть уникальным и не содержать никаких пустых значений (NULL). Этого не достаточно для родительского ключа в случае выполнения такого требования, как при объявлении внешнего ключа. SQL должен быть уверен, что двойные значения или пустые значения (NULL) не были введены в родительский ключ. Следовательно, вы должны убедиться, что все поля, которые используются как родительские ключи, имеют или ограничение PRIMARY KEY или ограничение UNIQUE, наподобие ограничения NOT NULL.

Популярность: 9%




Оставить комментарий или два


Навигация

Блог / Главная / Разработка / Внешний ключ как ограничение столбцов sql

Инфо

Запись опубликовал admin 29 апреля 2010 года и разместил в рубрике Разработка.   Запись имеет метки:   К статье пока нет комментариев. Вы можете быть первым.  

Случайные записи

Использование CHECK, чтобы предопределять допустимое вводимое значение sql Приобретение брандмауэра Использование операторов IN или EXISTS вместо оператора ANY Первичные ключи более чем одного поля sql