ВУЗ:
Составители:
Рубрика:
– 69 –
Ниже приводится расширенная инструкция
CREATETABLE для таблицы
ZAKAZY, в которую входит определение первичного ключа и трех внешних клю-
чей, имеющихся в таблице:
CREATETABLEZAKAZY
(ID_ORDERINTEGERNOTNULL,
DATE_ORDERDATENOTNULL,
ID_CLNINTEGERNOTNULL,
ID_SLZHINTEGER,
ID_MFRCHAR(3)NOTNULL,
ID_PRDCHAR(5)NOTNULL,
COUNTINTEGERNOTNULL,
PRICE_ALLMONEYNOTNULL,
PRIMARYKEY(ID_ORDER),
CONSTRAINTPLACEDBY
FOREIGNKEY(ID_CLN)REFERENCESCLIENTYONDELETECASCADE,
CONSTRAINTTAKENBY
FOREIGNKEY(ID_SLZH)REFERENCESSLUZHASCHIEONDELETECASCADE,
CONSTRAINTPLACEDBY
FOREIGNKEY(ID_MFR,ID_PRD)REFERENCESTOVARYONDELETECASCADE
)
На Рис. 3.1. изображены три созданные этой инструкцией связи с присво-
енными им именами. В общем случае связи следует давать имя, поскольку оно
помогает лучше понять, какая именно связь создана внешним ключом. Напри-
мер, каждый заказ делается клиентом, идентификатор которого находится в
столбце
CUST таблицы ZAKAZY. Связь с этим столбцом получила имя PLACEDBY.
Когда СУБД выполняет инструкцию
CREATE TABLE, она сравнивает опреде-
ление каждого внешнего ключа с определениями связанных таблиц. СУБД про-
веряет, соответствуют ли друг другу внешний и первичный ключи в связанных
№ ORDER DATE_ORDER ID_CLN ID_SLZH ID_MFR ID_PRD
112961 17.12.99 2103 196 УАЗ 2А34
ID_CLN COMPANY
2103 «Базальт»
ID_SLZH FAMILY
196 Федоров
ID_MFR ID_PRD
УАЗ 2А34
Рис. 3.1. Имена связей в инструкции CREATE TABLE
Страницы
- « первая
- ‹ предыдущая
- …
- 67
- 68
- 69
- 70
- 71
- …
- следующая ›
- последняя »
