【问题标题】:ERROR 1215 (HY000): Cannot add foreign key constraint in mysqlERROR 1215 (HY000): 无法在 mysql 中添加外键约束
【发布时间】:2014-06-26 08:19:00
【问题描述】:

嗨,我在 mysql 中为 spring hibernate 中的 onetoone 映射创建了两个表,但我收到错误 ERROR 1215 (HY000): Cannot add foreign key constraint

这是我的第一张桌子

CREATE TABLE `Employee` (  `empId` int(11) NOT NULL,  
`empName` varchar(255) DEFAULT NULL,  `empExp` int(11) NOT NULL, 
`empTeam` varchar(255) DEFAULT NULL,  `teamId` int(11) DEFAULT NULL);

第二张桌子

CREATE TABLE `EmpTeam` (  `teamId` int(11) NOT NULL, 
`teamName` varchar(255) DEFAULT     NULL, PRIMARY KEY (`teamId`)  ,
 KEY `FK1` (`teamId`), CONSTRAINT `FK1` FOREIGN KEY (`teamId`) 
 REFERENCES `Employee`   (`empId`));

请帮忙,提前谢谢

【问题讨论】:

  • 获取详细错误:运行SHOW ENGINE INNODB STATUS 并查看“最新外键错误”部分

标签: mysql spring hibernate-annotations


【解决方案1】:

试试这个

  CREATE TABLE `EmpTeam` (  `teamId` int(11) NOT NULL, 
                            `teamName` varchar(255) DEFAULT     NULL,
                             PRIMARY KEY (`teamId`)  ,
                             CONSTRAINT `FK1` FOREIGN KEY (`teamId`) 
                             REFERENCES `Employee`   (`empId`));

如果您已经拥有此 FK1,请将其删除并重新创建:

   alter table `EmpTeam` drop foreign key `FK1`

编辑:

您还必须在 Employee 表中添加 PRIMARY KEY 。它应该可以工作。

改变这个

   CREATE TABLE `Employee` (  `empId` int(11) NOT NULL ,

到

   CREATE TABLE `Employee` (  `empId` int(11) NOT NULL  PRIMARY KEY ,

【讨论】:

    猜你喜欢
    • 2013-09-26
    • 2014-03-27
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 2021-09-24
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多