ON DELETE

USE Дом_книги

USE Дом_книги

Внешние ключи таблицы. Опция FOREIGN KEY

База данных представляет собой набор взаимосвязанных таблиц. Ограниче­ние внешнего ключа позволяет обеспечить целостность данных в дочерней таблице.

При установке ограничения внешнего ключа SQL Server обращается к столбцу первичного ключа связанной таблицы и проверяет совпадение данных в общих столбцах.

 

Пример создания внешнего ключа (ссылочного ограничения по внешнему ключу).

В примере создается таблица, содержащая имена книг и ID авторов. Ог­раничение REFERENCES требует, чтобы значение поля AuthorlD уже присутствовало в таблице Authors.

 

CREATE TABLEBooks

(BookName varchar(250) NOT NULL,

AuthorlD i nt NOT NULL

CONSTRAINT author_fk REFERENCES Authors (AuthorlD))

 

 

Также это ограничение можно объявить на уровне таблицы с дополнительными опциямиON DELETEи ON UPDATE:

 

CREATE TABLE Books

(BookName varchar(250) NOT NULL, AuthorlD int NOT NULL,

CONSTRAINT author_fk FOREIGN KEY (AuthorlD)

REFERENCES Authors (AuthorlD)

ON UPDATE)

 

В этой команде определяет­ся, что в случае удаления записи из родительской таблицы соответствующие записи из дочерней удаляются (это определяется в части ON DELETE коман­ды).

Но в случае обновления данных в родительской таблице SQL Server не будет предпринимать никаких действий.

Это определяется в части ON UPDATE команды.

 

Ограничения внешнего ключа, состоящие из нескольких столбцов, должны объявляться на уровне таблицы. Они ссылаются на столбцы, объявленные в качестве первичных ключей или имеющие уникальные индексы.

Опция CHECK – ограничения проверки данных

В некоторых ситуациях осуществляется проверка на правильность ввода данных (как ограни­чение внешнего ключа).

Деловые правила могут предъяв­лять определенные требования к вводимым данным. Для их реализации мож­но воспользоваться ограничением проверки. Кроме того, ограничения проверки позволяют сравнивать данные из различных столбцов - при усло­вии, что столбцы находятся в одной таблице, а ограничение объявлено на уровне таблицы.

Например, создается таблица Authors, хранящая только записи авторов, имена которых начинаются с буквы А (специально для издательства, которое работает только с теми авторами, чье имя начинается с А).