MySQL错误:Can't create table‘..’ (errno:150)解决方案

MySQL错误:Can't create table‘..’ (errno:150)解决方案,第1张

解决方案

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进行查看。若被使用,可以换成别的名称


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7543531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存