gpt4 book ai didi

mysql - java.sql.BatchUpdateException : Row x was cut by GROUP_CONCAT()

转载 作者:行者123 更新时间:2023-11-29 23:17:31 26 4
gpt4 key购买 nike

我有一个批量更新函数,不包含任何 GROUP_CONCAT() 调用;

UPDATE 
product
SET
viewed = ?
WHERE
product_id = ?

如您所见,这是一个准备好的声明。我设置它的值,然后使用 addBatch() 方法为每行添加它。当我的计数达到定义的限制(1000)时,我将调用executeBatch()以进行数据库修改。正如你所看到的,在我的批量更新过程中没有调用 group_concat() ,但是 mysql jdbc 抛出了这个异常。 批量更新和group_concat()之间的隐藏关系是什么?为什么?我该如何解决这个问题?减少批处理限制或增加 group_concat() 限制?

我的堆栈跟踪是;

java.sql.BatchUpdateException: Row 276751 was cut by GROUP_CONCAT()
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2054)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1467)
at datasource.DB.execPreparedStatement(DB.java:480)
at datasource.DB.addBatch(DB.java:467)
at cj.reportsummarydaily.ProductViewed.executeJob(ProductViewed.java:24)
at job.Job.executeCore(Job.java:101)
at job.Job.execute(Job.java:77)
at cj.reportsummarydaily.Main.executeJobMeta(Main.java:35)
at job.JobMeta.execute(JobMeta.java:32)
at cronjob.CronJob.main(CronJob.java:66)
Caused by: java.sql.SQLException: Row 276751 was cut by GROUP_CONCAT()
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2006)
... 9 more

最佳答案

我发现并解决了问题。我们的一位前程序员在表产品上的更新触发器之前编写了一个错误。因此,当我更新产品表时,触发器在某些特定记录上引发了该异常。我正确地重新编程了触发器,还添加了以下代码以增加 group_concat 限制;

SET group_concat_max_len=1024 * 10;

关于mysql - java.sql.BatchUpdateException : Row x was cut by GROUP_CONCAT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com