我有這樣的:如果我有一個複雜的主鍵,是否有可能僅爲其中的一列創建外鍵?
ID1 INTEGER PRI
ID2 INTEGER PRI
NAME VARCHAR
現在我需要:
ID1_REF INTEGER REFERENCE TO ID1
DESCRIPTION VARCHAR
左右,一列是指主鍵的一列,不列2。關係數據庫中甚至有可能嗎?
我有這樣的:如果我有一個複雜的主鍵,是否有可能僅爲其中的一列創建外鍵?
ID1 INTEGER PRI
ID2 INTEGER PRI
NAME VARCHAR
現在我需要:
ID1_REF INTEGER REFERENCE TO ID1
DESCRIPTION VARCHAR
左右,一列是指主鍵的一列,不列2。關係數據庫中甚至有可能嗎?
不,你不能。 外鍵必須引用被引用表中的主鍵或另一個超級鍵(唯一標識該表中該行的屬性/列集合,無論這是否是實際聲明的主鍵)。 也值得閱讀Wikipedia article。
技術上你可以做任何你想做的事。但理論上這打破了主鍵和外鍵的主要概念。其實這只是一個術語問題。我不確定您的示例中的密鑰是否可以稱爲外鍵。也許我們可以把它稱爲部分外鍵或其他東西。
MySQL將使用該列創建另一個索引並創建指向它的FK,它不會重用該部分的PK。 –
請詳細說明一下。外鍵必須引用一個或多個唯一標識父記錄的字段。如果您的父表需要兩個字段來標識唯一性,那麼當它引用的字段不唯一時,外鍵如何識別父記錄? – Bueller