2012-06-23 104 views
18

我在MySQL Workbench中遇到了一些問題,因爲我有時在創建表時無法設置外鍵。我有時會說它並不總是這樣。問題是當我輸入一個FK並選擇一個參考表時,我無法選擇一個參考列。我無法點擊複選框,並且下拉列表爲空。我無法弄清楚問題是什麼原因,我看不出與正在工作的FK完全不同。我檢查了數據類型,名稱等,他們是正確的。我會提供一個SS來詳細說明。綠色標記的鍵(id_hem)正常工作,紅色標記是沒有的。

Screenshot of WB無法設置外鍵關係

回答

4

我有同樣的問題,問題是在外鍵索引。 MySQL工作臺有時會爲fk索引生成太長的名稱。手動更正有助於。

+4

你能否在yhow上添加一些信息來手動糾正? –

1

id_familjer是主鍵?設置它。
引用列僅顯示familjer表主鍵。

+0

是的,這是一個PK。 – Sandokan

6

我有同樣的問題..然後我檢查了兩個表..問題是類型,它應該在兩個表中匹配。

如果在fkblixten表列foralda表列id_familjer是(INT)
id_familjer也應該是(INT)
。如果兩種數據類型不匹配,MySQL Workbench將不允許選擇該列作爲外鍵。

29

我知道這是舊的,但通常的罪魁禍首是Non Null國旗和Unsigned。如果被引用的列確實啓用了它們,請確保在外鍵列上匹配這些列。

+1

這實際上節省了我的時間! – akshay1188

+0

這是我的問題。謝謝!在設置約束之前,已經在主鍵上設置了NN和無符號鍵,但忘記了外鍵。 – nils

+2

這就是我喜歡SO的原因。 3年過去了,有人會發現是什麼原因導致了一個尚未解決的bug並解決了它! TY – hammus

2

它也可能是由於不同的排序規則。只要檢查這兩列是否具有相同的排序規則。

在我的例子之一是與

表默認(使用UTF8通用)

另一個與

utf8_unicode_ci

我已經設置的2列與utf8_unicode_ci和它的作品。

1

外鍵應具有與主鍵類似的常量。您可以忽略AI,主鍵。 如果主鍵,UI,國外也應該有UI

用戶界面 - >無符號基於整數 AI->自動遞增

0

就我而言,我改變,我想設置每列的「整理」外鍵。

例如,我的FK列整理是'utf8',我也將我的參考表更改爲'utf8'。它解決了我的問題。

我希望這會有幫助。

0

如果您要在同一數據庫名稱空間中創建EER圖並且兩個或多個圖包含一個具有相同名稱的表,那麼也會發生這種情況。

所以,如果你試圖與一個表(它也存在於另一個具有相同名稱的圖)中存在關聯,它將在參考表中顯示爲兩次,兩者都引用你當前的圖表模式,它不會允許你設置一個關係。

解決方法是重命名另一個圖表中的表格。