2015-10-18 61 views
0

我有2個表。無法在表中設置外鍵

login (login_id primary key 
Email varchar(254) not null 
Password varchar(20) not null) 

registration(
id PK 
Email 
password 
name 
... etc 

) 

餘米試圖設置登錄爲作爲參考外鍵和註冊(電子郵件)的電子郵件。 但我不能這樣做 ALTER TABLE登錄添加外鍵(電子郵件)參考註冊(電子郵件);

我把它用於一個項目,這樣我就以用戶身份登錄時匹配登錄和註冊電子郵件。 有人可以幫助

+1

你的意思是「不能做'改變表...'」什麼?它會拋出一個錯誤嗎?如果是這樣,它說什麼? – vesan

回答

1

2個表中的列定義必須匹配才能創建FK。

registration(id PK, Email VARCHAR(254) NOT NULL, password name 

兩個表中的列的數據類型和長度必須匹配。

+0

這兩列都是電子郵件 –

+0

VARCHAR(254)NOT NULL我的意思是,名稱並不重要,但數據類型和長度都是 –

+0

即使它們是相同的 –

0

外鍵可以通過參考在另一個表的主鍵唯一密鑰與一定的限制,例如柱類型和尺寸來創建。兩列的類型和大小必須匹配。

有關事實的更詳細的討論,你可以參考這個SO發佈mysql-non-primary-foreign-key這MySQL參考手冊create-table-foreign-keys