Oracle完整性约束



假设一个名为SuplProd的表有supplierproduct两列,(Sony Ericcson, Xperia)(Apple, iPhone)两个表项。

我想创建一个名为Orders的表,列supplier, productquantity

然而,我希望表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)
)

最新更新