尝试添加外键时出现mysql错误

时间:2013-11-05 19:07:37

标签: mysql foreign-keys mysql-workbench

我使用MySql 5.6.14和MySql Workbench 6.0.7在MySql中构建数据库。我有一个Orders表和2个详细信息表。我试图将2个详细信息表设置为具有订单表OrderNumber列的外键。

主订单表可以这样创建:

 CREATE TABLE `orders` (
`PO` varchar(32) NOT NULL,  
PRIMARY KEY (`OrderTotal`,`PO`)   
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

还有其他列,但这里没有引用。

其他两个表的结构相似,看起来基本上是这样的:

CREATE TABLE `orderdetail` (
 `PO` varchar(32) NOT NULL,
  `EnteredID` int(11) NOT NULL,
   PRIMARY KEY (`PO`,`EnteredID`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

每次我尝试在表格中添加外键时,我都会得到:

  

错误1215:无法添加外键约束

接下来是:

  

错误:运行故障回复脚本时出错。详情如下。

     

错误1050:表' orderdetail'已存在

根据我所研究的内容,错误1050在这里毫无意义,并且在上一个查询无效时会抛出错误。其他人在使用错误的数据库类型,使用具有相同名称的外键,大写问题和不匹配的数据类型时遇到了问题。我在我的所有表上使用InnoDB引擎,我的MySQL服务器设置为全小写且不区分大小写,类型完全匹配,并且没有其他具有该名称的外键。

所以我不知道为什么我在创建几个外键时遇到这么多麻烦。

1 个答案:

答案 0 :(得分:0)

结果我需要在该列的引用表上有一个索引。我认为主键索引已经足够了,但我猜不是。