您是否可以將SQL中的表中的外鍵設置爲具有2列主鍵的另一表中的外鍵僅引用其中一個主鍵列Oracle?具有包含2列的主鍵的表的外鍵引用
2
A
回答
1
外鍵必須引用整個主鍵或其他唯一約束。如果父表需要兩列來唯一標識一條記錄,那麼它的依賴者必須在其結構中包含兩列。
通過使用替代或合成主鍵(通常用序列生成)來避免複合外鍵的擴散是非常常見的。外鍵引用單列代理鍵。
複合商業密鑰仍應在父表中使用唯一約束強制執行。
有時候複合主鍵包含一個也是唯一的列。例如,這是一種強制執行弧的方式(超類型和子類型關係)。因此,PERSONS表將具有(PERSON_ID)作爲主鍵和(PERSON_ID,PERSON_TYPE)作爲唯一鍵。在這種情況下,依賴表可能會根據特定關係引用(PERSON_ID)或(PERSON_ID,PERSON_TYPE)。
1
PK-FK關係規則規定,列的數量必須相同,數據類型也應該相同。
+1
關於搜索引擎的事情是他們可以很容易地找到剽竊答案的原始來源:technet.microsoft.com/en-us/library/cc917573.aspx請不要試圖通過批發報價來爭取代表:這不是SO的精神。 – APC
相關問題
- 1. 外鍵的表2列主鍵(CompositeId)
- 2. Laravel將外鍵引用移動到具有兩列的主鍵?
- 3. 創建具有複合主鍵的表引用兩個外鍵
- 4. 跨2個表引用2個主鍵的外鍵?
- 5. Ebean - 包含外鍵的組合主鍵
- 6. 具有相同唯一列的表的主鍵或外鍵
- 7. 更改其他表中外鍵引用的表的主鍵列
- 8. 將外鍵約束添加到包含現有數據的表的主鍵列
- 9. 包含具有2個主鍵的ManyToOne對象的實體
- 10. LinqToSql - 。從包含主鍵的內存列表中包含多列主鍵
- 11. SQL包含與主鍵相關的外鍵的表的返回列表
- 12. 引用的外鍵具有錯誤的列號。應該是2
- 13. 如何引用具有多個主鍵列的一個外鍵列
- 14. Nhibernate:外鍵必須與引用的主鍵具有相同的列數
- 15. 外鍵必須與引用的主鍵具有相同的列數
- 16. SQL Server從表中選擇主鍵包含多列的主鍵
- 17. 如何查找表A的主鍵具有外鍵約束的表的列表?
- 18. 休眠 - 複合主鍵包含外鍵
- 19. nhibernate外鍵必須與引用主鍵具有相同的列數
- 20. 被引用表'PayRoll'中沒有與外鍵'fk_EmployeeNumber'中的引用列表匹配的主鍵或候選鍵'
- 21. 有在引用表上沒有主或候選鍵的引用列列表中的外鍵
- 22. 使用多列(複合)主鍵包含外鍵關係
- 23. 從多列主鍵中包含的一列到另一列的外鍵
- 24. 如何更新2個表中具有外鍵的2列
- 25. 對外鍵的兩個主鍵引用
- 26. 如何構建具有複合主鍵的表的外鍵?
- 27. 外鍵必須與引用的主鍵具有相同的列數。但我沒有使用複合鍵
- 28. 加入3和表2具有主鍵和第三個具有兩個外鍵
- 29. JPA 2 - 僅包含複合主鍵中的一個字段的外鍵?
- 30. MySQL:使用引用由外鍵組成的主鍵的外鍵創建表
你的意思是一個兩列主鍵嗎?你不能在一個表上有兩個主鍵...... –
是的,這就是我的意思 – Spektor
外鍵可以定義爲多列。但是,複合外鍵必須引用具有相同列數和相同數據類型的複合主鍵或唯一鍵。因爲複合主鍵和唯一鍵限制爲32列,所以組合外鍵也限制爲32列。 (在9i中,但我認爲它不同於更高版本。http://docs.oracle.com/cd/B10500_01/server.920/a96524/c22integ.htm) –