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, хранящая только записи авторов, имена которых начинаются с буквы А (специально для издательства, которое работает только с теми авторами, чье имя начинается с А).