- 问题场景: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