2017-04-01 799 views
0

我一直在嘗試解決此問題,但找不到解決方案。 我有兩個表,即:用戶,firstdb。 在用戶表中我有兩個主鍵,在外鍵表中我有一個字段,我想讓它成爲一個外鍵。 我試圖將一個字段作爲用戶表中的主鍵,該關係在當時正常工作,但是一旦將第二個字段設置爲primary,它會強制我由於某種原因刪除現有關係。另外,這兩個字段具有相同的數據類型。表***中的列與現有主鍵或UNIQUE約束不匹配

我試圖在MySQL中創建這樣的關係,它對我來說工作得很好,但由於某種原因它在這裏不起作用。 enter image description here

enter image description here

+0

「在用戶表中我有兩個主鍵」。 *主鍵*表示有一個。 –

回答

0

你似乎有一個主要鍵就是一個深刻的誤解。主鍵(單數)是唯一標識每行的一列或多列(並且沒有列是NULL)。當您單擊「主鍵」兩列時,您正在生成一個複合主鍵。

外鍵引用需要是完整的主鍵。如果你有一個複合主鍵,你需要一個複合外鍵。

具有單列外鍵引用是爲什麼最佳類型的主鍵是標識列的原因之一。我猜測userid就是這樣一個專欄。

如果您希望uEmailId爲唯一且非空的,則將其定義爲唯一且非NULL。但是,不要將其添加到主鍵!

+0

我現在明白了,它的工作很好,謝謝你的幫助。 –