ВНЕШНИЙ КЛЮЧ КАК ОГРАНИЧЕНИЕ ТАБЛИЦЫ
Синтаксис ограничения таблицы FOREIGN KEY: FOREIGN KEY REFERENCES [ ] Первый список столбцов -
это
список из одного или более столбцов таблицы, которые отделены запятыми и будут созданы или
изменены этой командой.
Pktable - это таблица содержащая родительский ключ. Она может быть таблицей, которая создается
или изменяется текущей
командой. Второй список столбцов - это список столбцов которые будут составлять родительский
ключ. Списки двух
столбцов должны быть совместимы, т.е.: * Они должны иметь одинаковое число столбцов. * В данной
последовательности,
первый, второй, третий, и т.д., столбцы списка столбцов внешнего ключа, должны иметь
одинаковые типы данных и
размеры, что и первый, второй, третий, и т.д., столбцы списка столбцов родительского ключа.
Столбцы в списках обоих
столбцов не должны иметь одинаковых имен, хотя мы и использовали такой способ в наших
примерах чтобы делать связь
более понятной. Создадим таблицу Заказчиков с полем snum определенным в качестве внешнего
ключа ссылающегося на
таблицу Продавцов: CREATE TABLE Customers ( cnum integer NOT NULL PRIMARY KEY cname char(10),
city char(10), snum
integer, FOREIGN KEY (snum) REFERENCES Salespeople ( snum ); Имейте в виду, что при
использовании ALTER TABLE вместо
CREATE TABLE, для применения ограничения FOREIGN KEY, значения которые Вы указываете во
внешнем ключе и
родительском ключе, должны быть в состоянии справочной целостности. Иначе команда будет
отклонена. Хотя ALTER TAB-
LE очень полезна из-за ее удобства, вы должны будете в вашей системе, по возможности каждый
раз, сначала формировать
структурные принципы, типа справочной целостности.