当前位置:网站首页>1215 – Cannot add foreign key constraint
1215 – Cannot add foreign key constraint
2022-08-09 21:43:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
最近在做新生入学系统,学生表中包括新生的班级,专业等信息,班级,专业就需要和班级表,专业表进行关联,但是在添加外键的过程中却出现了“Cannot add foreign key constraint” 的问题,也就是不能添加外键约束,为什么就不能添加外键呢?
出现这个问题主要有三个原因:
(1)外键对应的字段数据类型不一致
(2)设置外键时“删除时”设置为“SET NULL”
(3)两张表的存储引擎不一致
经过检查,前两种情况排除,但是两张表的存储引擎都不清楚,于是又百度了一些关于存储引擎的东西:
查询表的引擎:
a、show table status from db_name where name=’table_name’;
b、show create table table_name;
查询结果如图:
班级表的引擎:
】
学生表的引擎:
果然是两张表的引擎不一致,那就修改成一样的呗
修改表的引擎:
alter table table_name engine=innodb;
首先将basicclassentities表的ndbcluster引擎修改为InnoDB,但是又出现了新的错误:”1217 – Cannot delete or update a parent row: a foreign key constraint fails”,于是尝试将freshstudententities表的引擎修改为ndbcluster,同样的问题。
“1217 – Cannot delete or update a parent row: a foreign key constraint fails“,这可能是MySQL在引擎中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况:
SET FOREIGN_KEY_CHECKS = 0; 删除完成后设置 :SET FOREIGN_KEY_CHECKS = 1;
还是不能修改表的引擎,于是又继续探索mysql的各种引擎(http://www.cnblogs.com/ggjucheng/archive/2012/11/11/2765469.html),经过分析,由于ndbcluster和集群,分布式有关,自己的电脑上没有足够的权限,所以修改不了,只要将两张表的引擎都修改为InnoDB,就可以添加外键了。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105725.html原文链接:https://javaforall.cn
边栏推荐
- kvm虚拟机出现启动不了,NOT available,PV大于分区
- 场效应管Mosfet之雷卯Leiditech对应英飞凌Infineon
- 单元测试
- MySQL:错误1153(08S01):得到的数据包大于“ max_allowed_packet”字节
- [corctf 2022] 部分
- SQLi-LABS Page-2 (Adv Injections)
- The overall construction process of the Tensorflow model
- 重要的不是成为海贼王,而是像路飞一样去冒险
- Hessian Matrix 海森矩阵
- Tensorflow中使用convert_to_tensor去指定数据的类型
猜你喜欢

浅谈Numpy中的shape、reshape函数的区别

Several ways to draw timeline diagrams

数独 | 回溯-7

小黑leetcode之旅:94. 二叉树的中序遍历(补充Morris 中序遍历)

Bean life cycle

CVPR22 Oral|通过多尺度token聚合分流自注意力,代码已开源

Xiaohei leetcode's refreshing rainy day trip, just finished eating Yufei Beef Noodles, Mala Tang and Beer: 112. Path Sum
![[Implementation of the interface for adding, deleting, checking, and modifying a double-linked list]](/img/49/ebedcd4d27aa608360ac17e504f36d.png)
[Implementation of the interface for adding, deleting, checking, and modifying a double-linked list]

Excel如何打出正负号?Excel打出正负号的方法

角度和弧度的相互换算
随机推荐
Install win virtual machine on VMware
编译原理之文法
【泛型编程】模板全详解
leetcode: the Kth largest element in the array
abstract class or interface
Shanghai Konan SmartRocket series product introduction (3): SmartRocket iVerifier computer interlocking system verification tool
windos安装Mysql8.0,及解决重新登录异常问题 ERROR 1045 (28000)
MySQL跨表、多表更新SQL语句总结
【双链表增删查改接口的实现】
AI识万物:从0搭建和部署手语识别系统
Xiaohei's leetcode journey: 94. Inorder traversal of binary trees (supplementary Morris inorder traversal)
上海控安SmartRocket系列产品推介(三):SmartRocket iVerifier计算机联锁系统验证工具
技术分享 | 接口自动化测试如何处理 Header cookie
2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day
哪款C语言编译器(IDE)适合初学者?
Bean生命周期
2021(ICPC)亚洲区域赛昆明站(CGHIJLM)
SecureCRT background color
laravel table migration error [easy to understand]
SQL语句及索引的优化