Предложение FOREIGN KEY

Оценить
(0 голоса)

Внешний ключ - это столбец или группа столбцов таблицы, которые содержат значения, соответствующие значениям первичного ключа той же самой или другой таблицы. Каждый внешний ключ объявляется с использованием предложения foreign key, объединенного с предложением references.

Предложение foreign key имеет следующую форму:

[constraint с_пате]

[ [foreign key]   ({col_namel),   ...)] references table_name ({col_name2},   ...) [on delete (no action | cascade | set null | set default}] [on update  (no action   |   cascade   |   set null  |   set default}]

Предложение foreign key явно определяет все столбцы, которые принадлежат внешнему ключу. Предложение references задает имя таблицы со всеми столбцами, которые входят в состав первичного ключа. Количество и типы данных столбцов в предложении foreign key должны соответствовать количеству и соответствующим типам данных столбцов в предложении references (и, разумеется, все они должны соответствовать количеству и типам данных столбцов первичного ключа таблицы, на которую осуществляется ссылка).

Таблица, которая содержит внешний ключ, называется дочерней таблицей, а таблица, содержащая соответствующий первичный ключ, называется родительской таблицей или главной таблицей. Пример 5.10 показывает спецификацию внешнего ключа в таблице works_on базы данных sample.

 

Предложение FOREIGN KEY

 

Таблица workson в примере 5.10 задана с двумя декларативными ограничениями целостности: prim_works и foreignworks. Оба ограничения являются ограничениями на уровне таблицы, где вначале задается первичный ключ, а затем внешний ключ таблицы workson. Далее, ограничение foreignworks определяет таблицу employee как родительскую таблицу, а ее столбец empno как первичный ключ, соответствующий столбцу с тем же именем в таблице works_on.

Предложение foreign key может быть опущено, если внешний ключ определяется как ограничение на уровне столбца, потому что столбец, для которого создается ограничение, является неявным столбцом в «списке» для внешнего ключа, а ключевое слово references является достаточным для указания того, какой тип имеет это ограничение. Максимальное количество ограничений внешнего ключа для одной таблицы - 63.

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


Ссылочная целостность
Возможные проблемы, связанные со ссылочной целостностью
Добавление новой строки в таблицу workson с номером служащего 11111
Изменение номера служащего 10102 во всех строках таблицы workson. Новое значение номера - 11111
Изменение номера служащего 10102 в соответствующей строке таблицы employee. Новое значение номера 22222

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.