There is no index in the referenced table where the referenced columns appear as the first columns.

MySQL cannot create foreign key constraint

According to http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html

 

Mysql需要外键和引用键上的索引,这样外键检查可以很快,不需要扫描表。在引用表中,必须有一个索引,其中外键列按相同顺序作为第一列列出。

InnoDB允许外键引用任何索引列或列组。但是,在引用的表中,必须有一个索引,其中引用的列以相同的顺序作为第一列列出。

因此,如果引用表中的索引存在,并且它由多个列组成,而所需的列不是第一个列,就会发生错误。

我们失误的原因是违反了以下规则:

外键和引用键中的相应列必须具有类似的数据类型。整数类型的大小和符号必须相同。字符串类型的长度不需要相同。对于非二进制(字符)字符串列,字符集和排序规则必须相同。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值