1、检查sc表的外键字段的类型以及大小是否和s表c表完全一致
2、试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的放,你必须为它创建一个索引。
3、一个或两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎
在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。出现问题的大致情况
--1、外键的引用类型不一样,如主键是int外键是char
--2、找不到主表中引用的列
--3、主键和外键的字符编码不一致,也可能存储引擎不一样
-- CREATE TABLE act_id_user(ID_ INT(20))是不可以的
CREATE TABLE act_id_user(ID_ varchar(20)) -- 是可以的
Mysql创建表或外键约束时出现1005错误代码的解决方法1.确保主从表的表类型 (即engine)都为InnoDB如果不是,可在创建表时加上engine=InnoDB.
2.确保主表有主键或对应的索引;
3.确保从表外键字段与主表字段类型一致;
4.确保该外键名称之前未被使用,可通过SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE进行查看。若被使用,可以换成别的名称
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)