MySQL 出现 String Index out of range: x 的原因
前言
调试代码时遇到一个很奇怪的问题, 对于一个很简单的 sql, 执行时会时不时的报异常 String Index out of range: x
SQL: select * from test where area = 10
但直接把 SQL 丢 SQL 工具里跑又没什么问题, 百度了一圈都没找到有人有相同问题, 明白后特地做下记录.
原因
由于要做分库, 代码连接 MySQL 时并没有直接连 MySQL, 而是连上的 MyCat, 恰好那个字段是分库的依据字段, 由于我没法拿到 mycat 的配置, 这里只能猜测, mycat 分库使用了该字段, 并且执行了类似 String.valueOf(area).subString(x)
的操作, 这就导致 当分库字段长度小于 x 时就会爆出 String index out of range: x, 而且由于这个错误不是 MySQL 的原因, 这就导致 直接用 SQL 工具执行是不会复现的.
省流
MyCat 分库导致的
本文作者:博麗靈夢
本文链接:https://www.cnblogs.com/Hakurei-Reimu-Zh/p/17723848.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步