2017-04-14 97 views
0

想在我的數據庫中創建一個表,但不斷收到這個錯誤,我不能確定我在做什麼錯了,這是我的SQL代碼:錯誤1064(42000):您有一個錯誤

CREATE TABLE Login_details (
username varchar(10) NOT NULL, 
password varchar(10) NOT NULL, 
Employee_ID FOREIGN KEY (`Employee_ID`) REFERENCES `employee_details` 
(`Employee_ID`) 
)ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+1

Employee_ID沒有在您的表上定義。 – Augwa

+0

另外我會繼續假設你將以純文本存儲密碼,你絕對不應該那樣做,他們應該被散列。你這樣做的方式會因你的編程語言而異。 – Augwa

+0

Employee_ID是另一個表的主鍵,稱爲employee_details。並且感謝你讓我知道,一旦我擁有了所有的桌子,我可能會改變它。 –

回答

0

下面是你將如何做到這一點。將Employee_ID列中的INT的數據類型更改爲在employee_details詳細信息表中匹配相同的數據類型。

但是,由於這是1-1關係,爲什麼不把它添加到現有的表中,似乎沒有意義打破這一點。

CREATE TABLE `Login_details` (
    `Employee_ID` INT NOT NULL, 
    `username` VARCHAR(10) NOT NULL, 
    `password` VARCHAR(10) NOT NULL, 
    PRIMARY KEY (`Employee_ID`), 
    CONSTRAINT `Employee_ID` FOREIGN KEY (`Employee_ID`) REFERENCES `employee_details` (`Employee_ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
相關問題