sql语句长度有限制吗?

【TiDB 使用环境】生产环境
【TiDB 版本】8.0.11-TiDB-v7.5.6
【操作系统】Centos
【部署方式】标准部署
执行sql语句的长度有限制么?应用端执行了一个超过30w长度的sql,报错Fatal error encountered during command execution. tidb日志设置的error级别,没有日志。

看下max_allowed_packet变量的大小
SHOW VARIABLES LIKE ‘%max_allowed_packet%’;
调整到最大试下
SET GLOBAL max_allowed_packet=10737418240;

查了,这个是默认值。集群是从v4升级到v7.5.6的。本地集群30w长度是执行没问题。

为啥弄那么长 :rofl:

:yum:里面是N多个insert、update语句。一次发送,可以用数据库的事务,保证全部成功或者全部失败。

TiDB 不限制 SQL 长度,但超长 SQL 容易在客户端或网络层面出错。“Fatal error encountered during command execution” 多为客户端或驱动层错误,TiDB 端日志可能无详细报错。你可以自己用命令行执行下,看是否报错,不报错的话,就排除掉 tidb 这边的原因,再去检查下应用程序端是否有其他设置

用命令行执行,命令行会拆成多个单独语句分别去执行吧,不会像应用程序那样打包一个语句去执行。因为这个语句里实际是多个insert语句和update语句。

这就不清楚了

执行 SQL 语句的长度确实存在一定的限制,需要修改对应的配置文件参数

哪个参数?

可以把 更详细的报错信息发一下,如果数据库侧有明显的报错信息也发一下

没有更详细的内容了。再跟几天看看,如果有新的日志,再补充。

:joy:重新定位了一下问题,不是sql语句太长的问题。 关贴了。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。