执行sql语句会使sql服务停止

来源:8-7 商品编辑之后端开发上

高敬超

2018-03-09

翔仔老师,我遇到一个问题。执行sql语句时,如果where条件中出现外键就是挂掉sql服务。

UPDATE 表名 SET 列名=值 WHERE product_id=1 and priority=1;

老师比如这句SQL语句product_id和priority都是表中的普通列,就可以查询到,但是如果是这样

UPDATE 表名 SET 列名=值 WHERE product_id=1 and shop_id=1;

其中shop_id是这个表的外键,执行就是挂掉sql服务


//img.mukewang.com/szimg/5aa2951b0001013003910137.jpg

望老师解答

写回答

1回答

翔仔

2018-03-10

同学好,同学可以把error code 2013贴到百度即可解决。。

mysql执行比较大的sql文件时,会报以下错误:

Error Code: 2013. Lost connection to MySQL server during query

问题原因:sql文件超过了mysql服务器设置的最大脚本文件

解决方法:修改mysql的配置文件,MySQL\MySQL Server 5.6\my.ini,修改或添加max_allowed_packet参数,将大小调整合适的大小,然后重启mysql服务,如:


[plain] view plain copy

[mysqld]  

max_allowed_packet=64M  


同时 同学为什么要加入外键的条件去判断,既然能用到主键或者唯一键唯一确定了就不需要用外键了呢

1
0

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程