Mysql java.sql.BatchUpdateException:x行被组_CONCAT()剪切

Mysql java.sql.BatchUpdateException:x行被组_CONCAT()剪切,mysql,jdbc,group-concat,batch-updates,Mysql,Jdbc,Group Concat,Batch Updates,我有一个批处理更新函数,它不包含任何GROUP_CONCAT调用 UPDATE product SET viewed = ? WHERE product_id = ? 正如你所见,这是一份事先准备好的声明。我正在设置它的值,然后使用addBatch方法为每一行添加它。当我的计数达到定义的限制1000时,我将调用executeBatch来修改数据库。正如您所看到的,在我的批处理更新过程中没有组_concat调用,但是mysql jdbc抛出了这个异常。批量更新

我有一个批处理更新函数,它不包含任何GROUP_CONCAT调用

UPDATE 
    product 
SET 
    viewed = ? 
WHERE 
    product_id = ? 
正如你所见,这是一份事先准备好的声明。我正在设置它的值,然后使用addBatch方法为每一行添加它。当我的计数达到定义的限制1000时,我将调用executeBatch来修改数据库。正如您所看到的,在我的批处理更新过程中没有组_concat调用,但是mysql jdbc抛出了这个异常。批量更新和组连接的隐藏关系是什么?为什么?我能做些什么来解决这个问题?减少批次限制还是增加组含量限制

我的堆栈跟踪是

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
我发现并解决了这个问题。我们的一位前程序员在表产品上编写了一个错误的更新前触发器。所以,当我更新产品表时,触发器在某些特定记录上引发该异常。我正确地重新编程了触发器,并在下面添加了代码,以增加组浓度限制

SET group_concat_max_len=1024 * 10;