MySQL创设外键的时候发生: ERROR 1005: Can't create table (errno: 150)
MySQL创建外键的时候发生: ERROR 1005: Cant create table (errno: 150)?资料来源:http://venus224.iteye
MySQL创建外键的时候发生: ERROR 1005: Can't create table (errno: 150)
?
资料来源:http://venus224.iteye.com/blog/284944在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。?出现问题的大致情况?
1、外键的引用类型不一样,主键是int外键是char?
2、找不到主表中 引用的列?
3、主键和外键的字符编码不一致?
4.还有要建立外键的话,要先建立索引。没有建立索引也会出错。=======================================================实际情况:主键字段是utf-8编码,而需要建立外键的字段是latin按照要求,数据库重新按照utf-8重建,解决问题
=======================================================发现还有种问题存在:
建表语句不规范,有开发人员自己写的,有的指定了Storage Engine,有的没指定,这样万一DB缺省的Storage Engine和写上去的不一样,这样造成在一个database中,不同的表的Storage Engine不一样,这样这些表就不能相互建立Foreign Key
?