Синтаксис ограничения таблицы FOREIGN KEY: FOREIGN KEY <COLUMN list> REFERENCES <PKTABLE> [ <COLUMN list> ] Первый список столбцов - это список из одного или более столбцов таблицы, которые отделены запятыми и будут созданы или изменены этой командой. 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 TABLE очень полезна из-за ее удобства, вы должны будете в вашей системе, по возможности каждый раз, сначала формировать структурные принципы, типа справочной целостности. |