您现在的位置是:网站首页> 编程资料编程资料
mysql创建的外键无法保存的原因以及处理办法_Mysql_
2023-05-26
388人已围观
简介 mysql创建的外键无法保存的原因以及处理办法_Mysql_
为mysql表内的字段创建外键,并关联几种更新或者删除时的动作。

那以下就向大家介绍下mysql创建的外键无法保存的原因以及处理方法
无报错,但是创建的外键都消失了,只能在索引找到之前创建的相关外键
原因
mysql引擎的原因,mysql主要使用两种引擎:myisam以及innodb(两者区别大家可以去看下我别的文章:php面试重点mysql存储引擎innodb和myisam的区别),phpstudy默认使用的myisam引擎,在不作任何改变的情况下直接建表,往往建立的是就是以myisam引擎为基础的,而myisam区别于innodb的一个明显不同是myisam不能创建外键,因此创建外键不能成功。
解决方法
首先判断是否是这个问题引起的不能创建外键:

如果是myisam引起的问题的话:
myisam引擎的表格是可以直接修改成innodb引擎的:
首先判断mysql的my.ini是否有打开innodb。(如果没有的话,在修改引擎那里,是没有innodb选项的)
这里以phpstudy为实例(不同的mysql软件都是修改my.ini文件)

进入之后显示的是my,ini文件,然后按照绿色字体的提示修改即可。

(右键需要修改的表格,选择“设计表“,然后做如下操作)

注意:
一个数据库要统一使用的引擎,如果某个表修改了引擎,那其他的也要跟着修改,预防报错,然后在修改的同时,要注意编码格式,要保持表编码的统一(不然在后面创建外键的时候会报错),
如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- mysql 8.0.30 降级到 8.0.27的详细步骤_Mysql_
- mysql创建外键报错的原因及解决(can't not create table)_Mysql_
- 解决JDBC的class.forName()问题_Mysql_
- Mysql添加联合唯一索引及相同数据插入报错问题_Mysql_
- Mysql optimize table 时报错:Temporary file write fail的解决_Mysql_
- mysql error 1071: 创建唯一索引时字段长度限制的问题_Mysql_
- MySQL8.0 索引优化invisible index详情_Mysql_
- MySQL创建唯一索引时报错Duplicate entry * for key问题_Mysql_
- Mysql数据库 ALTER 操作详解_Mysql_
- MySQL数据库表的合并与分区实现介绍_Mysql_
