ограничение целостности в Oracle - PullRequest
0 голосов
/ 02 января 2012

Предположим, что таблица с именем SuplProd имеет столбцы supplier и product и две записи: (Sony Ericcson, Xperia) и (Apple, iPhone).

Я хотел бы создать таблицу с именем Orders со столбцами supplier, product и quantity.

Однако я бы хотел, чтобы комбинация (supplier, product) таблицы Orders была ограничена только записями из SuplProd.

Например, запись (Sony Ericcson, Xperia, 1) будет действительной для таблицы Orders, тогда как (Apple, Xperia, 1) не будет.

Как это возможно в Oracle?

1 Ответ

3 голосов
/ 02 января 2012

Вы должны создать внешний ключ в таблице заказов:

create table SuplProd (
   supplier ...,
   product ...,
   constraint SuplProd_pk 
     primary key( supplier, product)
)

create table Orders
   ...
   supplier ...,
   product ...,
   qty,
   constraint SuplProd_pk 
     primary key( ... ),
   constraint orders_to_suplprod_fk
     foreign key ( supplier, product)
     references SuplPRod (supplier, product)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...