为了账号安全,请及时绑定邮箱和手机立即绑定

添加外键约束出错

mysql> ALTER TABLE t2 ADD FOREIGN KEY (pid) REFERENCES t1(id);

ERROR 1005 (HY000): Can't create table 't1.#sql-b8c_1' (errno: 150)

我搜索了一下原因说是缺少索引,但是我的两个表都有主键,老师不是说创建外键约束的时候自动创建索引吗为什么我的不行呢。跟老师代码一模一样,它添加成功之后字表有了KEY字段,代表索引,我添加不成功。

正在回答

1 回答

在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。

出现问题的大致情况

1、外键的引用类型不一样,如主键是int外键是char

2、找不到主表中引用的列

3、主键和外键的字符编码不一致,也可能存储引擎不一样

4、MySQL支持外键约束,但表类型必须为 InnoDB 


0 回复 有任何疑惑可以回复我~
#1

无悔欲 提问者

非常感谢!
2017-09-19 回复 有任何疑惑可以回复我~
#2

无悔欲 提问者

我粗心了,外检引用的类型没有写unsigned,看来还是得细心啊,谢谢
2017-09-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

添加外键约束出错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信