複合主鍵我嘗試做到MySQL這樣的:MySQL的:爲外鍵
創建具有A,B,C柱和一個複合主鍵和B 第一表創建第二個表格中的,B,D,E列,A,B,D作爲主鍵,當然A,B作爲第一個表的外部引用。
我使用MySQL工作臺來創建列,添加鍵和夷的限制,但是當我嘗試應用我收到此錯誤:
錯誤1215:無法添加外鍵約束
的事情是,我不知道我的設計究竟出了什麼問題。
你能幫助我嗎?
複合主鍵我嘗試做到MySQL這樣的:MySQL的:爲外鍵
創建具有A,B,C柱和一個複合主鍵和B 第一表創建第二個表格中的,B,D,E列,A,B,D作爲主鍵,當然A,B作爲第一個表的外部引用。
我使用MySQL工作臺來創建列,添加鍵和夷的限制,但是當我嘗試應用我收到此錯誤:
錯誤1215:無法添加外鍵約束
的事情是,我不知道我的設計究竟出了什麼問題。
你能幫助我嗎?
你的問題是你在第二個表中有(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);
有了這個查詢,你會發現A
,B
值secondTable
其中不firstTable
匹配任何記錄。
爲了能夠創建foreign key
,你需要無論是從secondTable
或insert
他們的比賽into
firstTable
刪除這些記錄。
謝謝你的幫助。其實我沒有任何數據進入第二張桌子,因爲我正在建造它。 –
@RananQuintin,做表匹配的類型?你能給我們一些代碼嗎? –
請給[mcve]並閱讀[問]。特別是顯示你的DDL。可能你沒有意識到FK的引用列必須聲明爲PK或UNIQUE NOT NULL。 (這裏是ABDE中的AB)但是「引用爲外鍵」沒有意義。 FK執行參照。我希望你真的想要ABDE(AB)REFERENCES ABC(AB)。請谷歌說明你的問題(使用「引用」的方式),這是一個常見問題。 – philipxy