当前位置:首页 > 编程笔记 > 正文
已解决

Sql 异常 + Error

来自网友在路上 139839提问 提问时间:2023-11-09 12:01:25阅读次数: 39

最佳答案 问答题库398位专家为你答疑解惑

目录

1、Sql 异常

1、SQL Error

1、 Out of sort memory,consider increasing server sort buffer size

2、MySQL排序规则不同关联报错

3、MySQL ....'LIMIT 15'

4、MySQL:Data truncation: Invalid JSON text

5、MySQL:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘ 

6、Mongdb:com.mongodb.MongoQueryException:....'Regular expression is invalid:....'

7、在MyBatis-Plus XML中使用for循环插入数据,如果数据量太大可能会存在性能问题和内存溢出等问题


1、Sql 异常

1、SQL Error

1、 Out of sort memory,consider increasing server sort buffer size

...- SQL Error: 1038,SQLState:HY001
...- Out of sort memory,consider increasing server sort buffer size

网上解决方案:

1、设置sort_buffer_size大小。测试完,不好用。

SET GLOBAL sort_buffer_size = 1024*1024;
SET SESSION sort_buffer_size = 1024*1024;show variables like '%sort_buffer_size%'; 

2、优化SQL语句

3、我遇到的情况是创建MySQL数据库,选择的排序规则:utf8mb4_0900_ai_ci,经过SQL语句修正库和字段排序规则为utf8mb4_general_ci后,测试还是有此问题。

--重新创建数据库,选择排序规则utf8mb4_general_ci。解决问题。

4、MySQL版本大于8.0.17且小于8.0.28的会存在此问题,此问题在8.0.28版本已修复

2、MySQL排序规则不同关联报错

..- Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='

网上解决方案:

 COLLATE 的方式转换使得排序规则相同。SQL语句后,增加COLLATE utf8mb4_general_ci

3、MySQL ....'LIMIT 15'

现象:Mybatis-plus框架查询拼接2次LIMIT 15

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: You have an errorin your SQL syntax;  check the manual that corresponds to your MySQL server version forthe right syntax to use near 'LIMIT 15' at line 1原因:
此错误,Mybatis-plus框架中分页的@Bean被注入多次,一次是当前项目定义的@Bean 分页,
还有是引入的依赖jar中的@Bean 分页
解决方案:去掉一个@Bean分页配置

4、MySQL:Data truncation: Invalid JSON text

### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: 
Invalid JSON text: "Invalid value." at positopn.....错误原因,数据库中的字段需要json类型的数据,非json类型的数据时就会报此类错误!
建议打断点查看要插入数据库的json数据
==>java  byte 类型 数据:X'22'   set<xx>类型转json格式有问题....修改类中属性 lombok注解,不生成get方法
@Getter(value = AccessLevel.PRIVATE)
private byte[] xxxBytes;

5、MySQL:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘ 

java.sql.SQLIntegrityConstraintViolationException:Duplicate entry ‘xx‘ for key ‘xxxx.PRIMARY‘ 
原因:主键设置重复,或者说是主键冲突
解决方案:
隔山打牛: 我mybatis-plus框架,6-7张关联表,一张表插入,导致另一张表id关联插入,
使用对象insert插入,bean对象copy导致,对象引用地址相同,导致ID关联主键等会冲突。
解决:
插入对象 克隆新的对象  implements Cloneable{//重写clone方法...自行百度学习
}

6、Mongdb:com.mongodb.MongoQueryException:....'Regular expression is invalid:....'

很大可能就是编写的正则有问题

7、在MyBatis-Plus XML中使用for循环插入数据,如果数据量太大可能会存在性能问题和内存溢出等问题

因为MyBatis-Plus XML中,for循环插入数据实际上是将SQL语句拼接成一个非常长的字符串,然后一次性执行。字符串长度超过MySQL最大限制(默认4MB),导致SQL执行失败

干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Sql 异常 + Error":http://eshow365.cn/6-36167-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!