假設我在MySQL數據庫中有一堆MyISAM表。我知道,如果我的表是InnoDB,MySQL Workbench會自動獲取表之間的關係。但是如果我的表是MyISAM,是否有一種方法可以選擇將哪個列用作MySQL Workbench中的外鍵,而無需MySQL Workbench在我的表模式中添加一列?舉例來說,假設我有一個表中這些列稱爲users
:手動選擇外鍵列mysql workbench
id PRIMARY KEY
username VARCHAR (255)
password VARCHAR (255)
email VARCHAR (255)
user_type_id INT
正如你可以在上面看到,user_type_id
將是一個外鍵從一個叫user_types
表來。如果我在MySQL Workbench中的表users
和user_types
之間添加了多對一關係,那麼user_types_id
列將自動添加到我的表users
的模式中(因爲這是MySQL Workbench通常認爲的外鍵)。我不希望發生這種情況,我希望能夠告訴MySQL Workbench使用列user_type_id
作爲我的外鍵。任何方式我可以做到這一點?
謝謝
注:沒有當我雙擊一個表上的MySQL Workbench中的模型視圖,但是當我這樣做,我得到以下文本的外鍵選項卡:
注意:只能爲特定的存儲引擎(如InnoDB)定義外鍵。服務器接受其他存儲引擎的外鍵定義,但默默忽略它們。將您的表引擎切換到支持外鍵的位置,以便在此處進行調整。
我試過了,當我點擊我無法調整任何東西的外鍵時,我只是有一段文字說外鍵只能被定義爲像InnoDB這樣的特定存儲引擎。我會更新這個帖子,讓其他人不會提出同樣的問題 – user765368
你有什麼理由使用MyISAM和InnoDB嗎?只是好奇,而我環顧四周。 – LNendza
原因約束沒有直接在我的表中定義(因爲我使用的是框架,所以我讓框架處理表上的外鍵約束) – user765368