drogon icon indicating copy to clipboard operation
drogon copied to clipboard

Mapper类支持insertBatch方法吗?

Open mrclassfree opened this issue 10 months ago • 3 comments

我在接口参数中有个参数是一个数组,接口中需要根据数组内容更新绑定关系表的记录。所以需要批量插入数据。现在的版本好像不支持insertBatch方法,请问还有什么性能好点的批量插入数据的方法吗?

mrclassfree avatar Apr 18 '25 07:04 mrclassfree

很不幸,MySql和Pg的连接库都没有提供批量插入的接口。

我用过两种方法

  1. 把记录变成一个json数组, 作为单一字符串参数, 然后在sql里手动展开, 例如pg的jsonb_each, jsonb_elements函数
  2. 打开 batch_mode, 然后循环插入

这两种方法只在pg里可用,我比较推荐方法一,方法二在错误处理上比较麻烦。

hwc0919 avatar May 14 '25 07:05 hwc0919

还真是不幸,是我要求太高了吗?

mrclassfree avatar May 20 '25 02:05 mrclassfree

不算高吧, 感觉是个常规需求,但客户端库因为自身原因没实现这个接口。像ODBC是有批量接口的,虽然它很难用。

hwc0919 avatar May 20 '25 03:05 hwc0919