1215 – Cannot add foreign key constraint

1215 – Cannot add foreign key constraint问题场景:MySQL两张表想要进行外键关联,sql语句正确,但出现上述错误原因分析:创建外键错误的原因大概有一下几个原因:1、关联的两个字段的字段的类型不一致2、设置外键删除时setnull3、两张表的引擎不一致解决方式:1、保证关联的两个字段的字段类型一致,当然字段约束不同时也不能创建成功,但报的不是这个错误2、默认即可3、查看两张表的引擎是否相同,有两种方式…

  • 问题场景:MySQL两张表想要进行外键关联,sql语句正确,但出现上述错误
  • 原因分析:
    创建外键错误的原因大概有一下几个原因:
    1、关联的两个字段的字段的类型不一致
    2、设置外键删除时set null
    3、两张表的引擎不一致
  • 解决方式:
    1、保证关联的两个字段的字段类型一致,当然字段约束不同时也不能创建成功,但报的不是这个错误
    2、默认即可
    3、查看两张表的引擎是否相同,有两种方式可以进行查看表的引擎
show table status from db_name where name='table_name';

这种方式根据查询的结果注意两个表的Engine字段的值即可

show create table table_name;

建表语句的最后一行会有engine=XX

查出表的引擎之后如果发现不同修改为相同即可,但是这是通常会出现另一个错误

1217 - Cannot delete or update a parent row: a foreign key constraint fails

这个错误出现的原因是mysql数据库设置了foreign key的关联属性导致无法删除或者更新数据
执行下面指令便可避免这个情况,但要记得执行完之后把变量改回1

set FOREIGN_KEY_CHECKS = 0

之后再执行增加外键语句就行了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37425.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注