MySQL ERROR 1005: Can't create table (errno: 150)解决办法

在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can’t create table (errno: 150)的错误信息,结果是不能建立引用约束。
出现问题的大致情况
1、外键的引用类型不一样,如主键是int外键是char
2、找不到主表中引用的列
3、引用的字段和外键的字符编码不一致,也可能存储引擎不一样
4、引用的字段和外键的约束不同

我出现的问题就是第4种,我的外键中被binary修饰了,然后引用的字段中没有binary修饰。因此建表失败,当我加上binary时建表成功了。

建议:当遇到这种情况时好好的对照两张表中的引用和被引用字段之间是否有什么差异,然后找出问题的所在。

你可能感兴趣的:(MySQL)