2017-03-16 127 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)