【问题标题】:Grouped or Multiple Foreign Key Constraints分组或多个外键约束
【发布时间】:2017-03-20 13:35:24
【问题描述】:

我有一种情况,我想限制一个表中的记录,只允许将 2 列填充在一起,它们存在于另一个表记录中。

例如:

  1. tblHomeHome_ID
  2. tblParent (Home_ID, Parent_ID) --> Home_ID 必须存在于 tblHouse 中
  3. tblChildHome_ID、Parent_ID、Child_ID)--> Home_IDParent_ID 必须存在于 tblParent 的同一记录中。

有没有办法创建一个约束来强制执行关系 3?

【问题讨论】:

    标签: sql foreign-keys constraints ssms foreign-key-relationship


    【解决方案1】:

    SQL 声明性完整性约束FOREIGN KEY 表示表中的子行值必须作为子行值出现在它形成超键的其他位置(UNIQUE NOT NULLPRIMARY KEY)。否则,您必须通过触发器进行约束。子行值必须作为子行值出现在其他地方的情况称为包含依赖约束,SQL 不以声明方式支持。

    1. tblChild (Home_ID, Parent_ID, Child_ID) --> Home_ID 和 Parent_ID 必须存在于 tblParent 的同一记录中。

    只要在tblParent 中有(Home_ID, Parent_ID) 作为UNIQUE NOT NULLPRIMARY KEY,就可以在tblChild 中有FOREIGN KEY (Home_ID, Parent_ID) REFERENCES tblParent (Home_ID, Parent_ID)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多