2011-08-19 51 views
1

我有這樣的:如果我有一個複雜的主鍵,是否有可能僅爲其中的一列創建外鍵?

ID1 INTEGER PRI 
ID2 INTEGER PRI 
NAME VARCHAR 

現在我需要:

ID1_REF INTEGER REFERENCE TO ID1 
DESCRIPTION VARCHAR 

左右,一列是指主鍵的一列,不列2。關係數據庫中甚至有可能嗎?

+0

MySQL將使用該列創建另一個索引並創建指向它的FK,它不會重用該部分的PK。 –

+1

請詳細說明一下。外鍵必須引用一個或多個唯一標識父記錄的字段。如果您的父表需要兩個字段來標識唯一性,那麼當它引用的字段不唯一時,外鍵如何識別父記錄? – Bueller

回答

1

不,你不能。 外鍵必須引用被引用表中的主鍵或另一個超級鍵(唯一標識該表中該行的屬性/列集合,無論這是否是實際聲明的主鍵)。 也值得閱讀Wikipedia article

0

技術上你可以做任何你想做的事。但理論上這打破了主鍵和外鍵的主要概念。其實這只是一個術語問題。我不確定您的示例中的密鑰是否可以稱爲外鍵。也許我們可以把它稱爲部分外鍵或其他東西。

相關問題