golang 中的 sql 事务中的批量更新插入

我一直在用事务处理 golang 的 sql 包,我试图了解如何在没有每一行的“每个插入”往返通信的情况下进行批量更新。此处的示例并未真正显示如何进行批量查询。


updateMoney, err := db.Prepare("INSERT INTO balance set money=?, id=? ON DUPLICATE UPDATE balance SET money=money+? WHERE id=?")

...

tx, err := db.Begin()

...

res, err := tx.Stmt(updateMoney).Exec(123.45, 1, 123.45, 1)

res, err := tx.Stmt(updateMoney).Exec(67.89, 2, 67.89, 2)

res, err := tx.Stmt(updateMoney).Exec(10.23, 3, 10.23, 3)

...

tx.Commit()

理想情况下,我可以进行一个准备好的查询,并建立一个要同时发送的更新插入列表……但在这里,我们在每次执行后从数据库中得到一个结果。关于如何解决这个问题的任何建议?


编辑:我的同事发现了这个描述问题的公开票......它看起来比严格在交易上下文中更重要。


呼唤远方
浏览 805回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go