mysql-创建外键时出现Cannot add foreign key constraint

mysql-创建外键时出现Cannot add foreign key constraint,第1张

问题:

我想在students表中创建外键ClassID,关联到class表中的主键ClassID上,要求级联更新删除,但创建外键过程中显示Cannot add foreign key constraint。

先看一下关联表结构,

出现该问题时要考虑一下几点:

分步来看:

查看单张表使用存储引擎的SQL语句:

结果如下:

可以看出classes表的引擎是MyISAM,想创建外键必须改为InnoDB

修改表引擎的SQL语句如下:

修改后结果如下:

由之前的表结构可看出,两个字段的类型均为int(16)

如需修改字段类型,可用SQL语句:

由上边表结构可以看出,classes表中ClassID的default值为0,而students表中ClassID的default值为NULL,因此需要修改字段的default。

修改字段default的SQL语句:

修改后结果为:

三步修改完成后再次尝试创建外键

*** 作成功,结果如下:

1.添加外键报错,外键无法建立无非这几种可能

(一)确定外键上建立了索引,否则无法创建约束;

(二) 外键的引用类型和主表列类型不一致,比如主键是number的,外键是varchar2的;

(三)确定引用的主表列存在;

2.建表报错上提示此表已存在哦,drop之后再建表。


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

原文地址: http://outofmemory.cn/bake/11598918.html

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

发表评论

登录后才能评论

评论列表(0条)

保存