2017-04-14 139 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; 
相关问题