2016-11-25 68 views
-1

複合主鍵我嘗試做到MySQL這樣的:MySQL的:爲外鍵

創建具有A,B,C柱和一個複合主鍵和B 第一表創建第二個表格中的,B,D,E列,A,B,D作爲主鍵,當然A,B作爲第一個表的外部引用。

我使用MySQL工作臺來創建列,添加鍵和夷的限制,但是當我嘗試應用我收到此錯誤:

錯誤1215:無法添加外鍵約束

的事情是,我不知道我的設計究竟出了什麼問題。

你能幫助我嗎?

+0

請給[mcve]並閱讀[問]。特別是顯示你的DDL。可能你沒有意識到FK的引用列必須聲明爲PK或UNIQUE NOT NULL。 (這裏是ABDE中的AB)但是「引用爲外鍵」沒有意義。 FK執行參照。我希望你真的想要ABDE(AB)REFERENCES ABC(AB)。請谷歌說明你的問題(使用「引用」的方式),這是一個常見問題。 – philipxy

回答

0

你的問題是你在第二個表中有(A, B)對,它們在你的第一個表中沒有匹配。

運行以下命令:

select secondTable.A, secondTable.B 
from secondTable 
where not exists (select 1 
        from firstTable 
        where firstTable.A = secondTable.A and firstTable.B = secondTable.B); 

有了這個查詢,你會發現ABsecondTable其中不firstTable匹配任何記錄。

爲了能夠創建foreign key,你需要無論是從secondTableinsert他們的比賽intofirstTable刪除這些記錄。

+0

謝謝你的幫助。其實我沒有任何數據進入第二張桌子,因爲我正在建造它。 –

+0

@RananQuintin,做表匹配的類型?你能給我們一些代碼嗎? –