2017-03-16 40 views
0

我有一种情况,我想限制表中的记录,只允许将两列填充到一起,而这些列在另一个表记录中已经配对。分组或多个外键约束

例如:

  1. tblHomeHOME_ID
  2. tblParentHOME_ID,PARENT_ID) - >HOME_ID必须存在在tblHouse
  3. tblChildHOME_ID,PARENT_ID,Child_ID) - >HOME_IDPARENT_ID必须在tblParent相同的记录存在。

有没有办法建立一个强制关系3的约束?

回答

0

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

  • tblChild(HOME_ID,PARENT_ID,Child_ID) - > HOME_ID和PARENT_ID必须在tblParent相同的记录存在。
  • 只要你有(Home_ID, Parent_ID)UNIQUE NOT NULLPRIMARY KEYtblParent,你可以在tblChildFOREIGN KEY (Home_ID, Parent_ID) REFERENCES tblParent (Home_ID, Parent_ID)