ВУЗ:
Составители:
Рубрика:
– 68 –
Предложения PRIMARY KEY и FOREIGN KEY
Кроме определений столбцов таблицы, в инструкции
CREATETABLE указы-
вается информация о первичном ключе таблицы и ее связях с другими табли-
цами базы данных. Эта информация содержится в предложениях
PRIMARYKEY и
FOREIGNKEY.
Предложением
PRIMARYKEY задается столбец или столбцы, которые обра-
зуют первичный ключ и служат в качестве уникального идентификатора строк
таблицы. СУБД автоматически следит за тем, чтобы первичный ключ был уни-
кален. Кроме того в определениях столбцов первичного ключа должно быть
указано, что они не могут содержать значения
NULL (имеют ограничения
NOTNULL).
В предложении
FOREIGNKEY задается внешний ключ таблицы и определяет-
ся связь, которую он создает для нее с другой таблицей (таблицей-предком).
Итак, внешний ключ строится в дочерней таблице для соединения родитель-
ской и дочерних таблиц базы данных. В предложении
FOREIGNKEY содержатся
(или могут содержаться) следующие определения:
– CONSTRAINT определяетнеобязательное имя отношения; оно не используется
в инструкциях
SQL, но может появляться в сообщениях об ошибках и потребуется
в дальнейшем, если будет необходимо удалить внешний ключ;
– списокстолбцоввнешнегоключа − определяет столбцы дочерней таблицы,
по которым строится внешний ключ; столбец или столбцы создаваемой таблицы,
которые образуют внешний ключ;
– имя таблицы‐предка − определяет таблицу, в которой описан первичный
ключ. На этот ключ должен ссылаться внешний ключ дочерней таблицы для обес-
печения ссылочной целостности; таблица, связь с которой создает внешний ключ;
это таблица-предок, а определяемая таблица в данном отношении является потом-
ком;
– списокстолбцовтаблицы‐предка − необязателен при ссылке на первичный
ключ родительской таблицы;
– ONDELETE илиONUPDATE − определяют способы изменения подчиненных
записей дочерней таблицы при удалении или изменении поля связи в записи ро-
дительской таблицы. Перечислим эти способы:
NOACTION − запрет удаления/изменения родительской записи при на-
личии подчиненных записей в дочерней таблице;
CASCADE − для оператора ONDELETE: при удалении записи родитель-
ской таблицы происходит удаление подчиненных записей в дочерней
таблице; для оператора
ONUPDATE: при изменении поля связи в записи
родительской таблицы происходит изменение на то же значение поля
внешнего ключа у всех подчиненных записей в дочерней таблице;
SETDEFAULT − в поле внешнего ключа у записей дочерней таблицы за-
носится значение этого поля по умолчанию, указанное при определении
поля (параметр
DEFAULT); если это значение отсутствует в первичном
ключе, инициируется исключение;
SETNULL − в поле внешнего ключа заносится значение NULL.
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »
