假设名为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中如何实现?
答案 0 :(得分:3)
您应该在订单表中创建一个外键:
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)
)