问题标签 [batch-updates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
801 浏览

mysql - java.sql.BatchUpdateException:第 x 行被 GROUP_CONCAT() 剪切

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

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

我的堆栈跟踪是;

0 投票
1 回答
666 浏览

spring - jdbcTemplate.batchUpdate 问题

如何将其转换为返回 jdbcTemplate.batchUpdate?

它需要对几个表执行。

0 投票
0 回答
479 浏览

sql-server - 批量更新触发

我在采购表中有 3 个表和一个触发器。

用户(用户 ID | 余额)

购买(PurchaseId | UserId | Amount | IsConfirm)

TransactionDetail (TrxId | UserId | Balance |Amount)

当 Purchase IsConfirm 从 False 更新为 True 时,我希望触发器更新 Player Balance 并将新记录插入 TransactionDetail。

我有这个批量更新声明:

UPDATE Purchase SET IsConfirm = true WHERE UserId=1

我知道触发器只会被触发一次以进行批量更新。所以如果有 5 行更新,只有 1 行插入到 TransactionDetail 表中,余额没有正确更新。

如果批量更新中有 5 行受影响,
通过使用触发器,有没有办法将 5 更新的行插入 TransactionDetail 并正确更新用户余额?

0 投票
1 回答
1837 浏览

java - 识别 JDBC 中的 executeBatch() 失败

我正在使用以下代码将数据插入表中。

其他处理方法只发生以上所有行都成功插入....

当我使用 Insert 插入表时executeBatch(),如果 Inserting 发生 SQL Exception 或 Error ,是否有可能找到哪个 Record 的 Insertion 引发了异常?

0 投票
1 回答
2102 浏览

java - Postgresql JDBC 驱动程序中的批量更新在自动提交中回滚

我正在使用 postgres 9.3-1100-jdbc41 JDBC4 驱动程序进行批量插入。

根据 JDBC 规范,由应用程序来禁用自动提交以及提交或回滚事务。

就我而言,我没有使用任何事务(即自动提交为真),但如果批处理中的一个插入失败,插入仍然会回滚。

根据 JDBC 规范“如果批量更新中的某个命令未能正确执行,则此方法会抛出 BatchUpdateException,并且 JDBC 驱动程序可能会或可能不会继续处理批处理中的剩余命令。”。这里并没有说之前执行的命令将被回滚。

我的理解错了吗?如果不是,为什么驱动程序会以这种方式行事,如果是,那么根据规范,正确的行为是什么。

0 投票
5 回答
14056 浏览

yii2 - 如何在 yii2 中进行批量更新

在 yii2 中只有 batchInsert 可用,在 yii2bacthUpdate中不可用,我们如何像 Codeigniter 一样在 yii2 中做到这一点batchUpdate

0 投票
1 回答
596 浏览

java - Hibernate Jpa批量插入不起作用

我正在使用 hibernate jpa 来执行批量更新。

它没有给出任何错误或异常,但每次给出时事务都会回滚。

这是我的批量更新代码

我正在使用 Postgres 服务器 9.4.1 请帮我弄清楚我做错了什么。我检查了其他类似的帖子,但没有任何帮助。

更新:我得到了解决方案:问题是我正在刷新已经刷新的事务。因此它没有给我任何正在进行的事务错误以及我在上面发布的错误。所以我只是删除了 `getEm().flush() ; 和 getEm().clear(); 从finally块开始工作:)

0 投票
1 回答
1718 浏览

java - JDBC 批量更新在初始更新语句集上跳过

我们在 Java 代码中使用 JDBC 批量更新(Statement - void addBatch(String sql) 和 int[] executeBatch())。该作业应该在表中插入大约 27k 条记录,然后在后续批次中更新大约 18k 条记录。

当我们的工作在早上 6 点运行时,它丢失了几千条记录(我们从数据库审计日志中观察到了这一点)。我们可以从作业日志中看到,正在为所有 18k 记录生成更新语句。我们知道所有更新语句都按顺序添加到批处理中,但是,似乎只有批处理开头的记录丢失了。此外,它不是每天的固定数字 - 一天,它跳过前 4534 条更新语句,另一天跳过前 8853 条记录,另一天,跳过 5648 条记录。

我们最初认为这可能是一个线程问题,但由于被跳过的块并不总是包含相同数量的更新语句,因此已经放弃了这个思考过程。如果我们假设前几千个更新甚至在插入之前就发生了,那么这些更新至少应该显示在数据库审计日志中。然而,这种情况并非如此。

我们认为这是由于内存/堆问题,因为在任何其他时间运行作业都会获取所有 18k 更新语句并且它们已成功执行。我们查看了来自 Oracle 数据库的审计日志,并注意到在早上 6 点运行期间从未在表上执行丢失的更新语句。在任何其他时间,所有更新语句都显示在数据库审计日志中。

这项工作已经成功运行了近 3 年,而这种行为仅在几周前才开始。我们试图查看服务器/环境的任何变化,但没有任何变化。

我们试图查明为什么会发生这种情况,特别是,如果有任何进程占用了过多的 JVM 堆,因此我们的更新语句被覆盖/不被执行。

数据库:Oracle 11g Enterprise Edition Release 11.2.0.3.0 - 64 位 Java:java 版本“1.6.0_51” Java(TM) SE 运行时环境(内部版本 1.6.0_51-b11) Java HotSpot(TM) 服务器 VM(内部版本 20.51-b01 , 混合模式)

任何建议将不胜感激,谢谢。

0 投票
1 回答
2621 浏览

sybase - Sybase 批量大更新

我需要在 sybase 中进行大量更新。

表 1 有 a、b、c、e、f 列,大约 900 万条记录。表 2 有 a、e、f 列,大约 500000 条记录。

由于系统日志已满,波纹管更新 sql 失败

在互联网上进行研究后,由于同样的错误,以下两个程序仍然失败,但它们确实成功更新了 5000 条记录。

有任何想法吗。谢谢!

0 投票
2 回答
483 浏览

javascript - 一次更改多个可观察对象时提高淘汰赛性能

对于提供的 JSFiddle 中的“click”事件的任何性能建议,我将不胜感激。

这个想法是在一次更改多个可观察对象时提高性能。

我找不到任何有关以批处理方式暂停和恢复更新通知的文档。

http://jsfiddle.net/g9jpxcm2/