假设一个名为SuplProd
的表有supplier
和product
两列,(Sony Ericcson, Xperia)
和(Apple, iPhone)
两个表项。
我想创建一个名为Orders
的表,列supplier
, product
和quantity
。
然而,我希望表Orders
的组合(supplier, product)
被限制为只包含SuplProd
的条目。
例如,表项(Sony Ericcson, Xperia, 1)
对表Orders
有效,而(Apple, Xperia, 1)
则无效。
这在Oracle中是如何实现的?
您应该在orders表中创建一个外键:
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)
)