Oracle中的完整性约束

时间:2012-01-02 12:17:09

标签: database oracle foreign-keys database-integrity

假设名为SuplProd的表格中包含supplierproduct列以及两个条目:(Sony Ericcson, Xperia)(Apple, iPhone)

我想创建一个名为Orders的表,其中包含supplierproductquantity列。

但是,我希望表(supplier, product)的组合Orders仅限于包含来自SuplProd的条目。

例如,条目(Sony Ericcson, Xperia, 1)对表格Orders有效,而(Apple, Xperia, 1)则不会。

这在Oracle中如何实现?

1 个答案:

答案 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)
)