分组或多个外键约束

时间:2017-03-16 16:15:30

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

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

例如:

  1. tblHome Home_ID
  2. tblParent Home_ID,Parent_ID ) - > Home_ID 必须存在于tblHouse中
  3. tblChild Home_ID,Parent_ID,Child_ID ) - > Home_ID Parent_ID 必须存在于tblParent的同一记录中。
  4. 有没有办法创建约束来强制执行关系3?

1 个答案:

答案 0 :(得分:0)

SQL声明完整性约束FOREIGN KEY表示表中的子行值必须在其他地方显示为子行值,并形成超级键(UNIQUE NOT NULLPRIMARY KEY)。否则你必须通过触发器约束。 subrow值必须在其他地方显示为子行值的情况称为包含依赖性约束,并且SQL不会声明性地支持它。

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

只要(Home_ID, Parent_ID)UNIQUE NOT NULLPRIMARY KEYtblParent FOREIGN KEY (Home_ID, Parent_ID) REFERENCES tblParent (Home_ID, Parent_ID)tblChild就可以 <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <img src="..." alt="..."> <div class="caption"> <h3>Thumbnail label</h3> <p>...</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p> </div> </div> </div>