Anorm是否支持批量插入?

时间:2014-09-04 13:50:17

标签: scala anorm

我想在Scala中将数据从SQL服务器复制到vertica,我正在考虑使用Anorm,但我没有找到任何有关批量插入的文档。如果Anorm不支持​​批量插入,我应该使用哪个库?

1 个答案:

答案 0 :(得分:6)

确实如此,使用BatchSql。这是一个直接来自测试的例子

BatchSql(
  "SELECT * FROM tbl WHERE a = {a}, b = {b}",
  Seq(
    Seq[NamedParameter]("a" -> 0, "b" -> -1),
    Seq[NamedParameter]("a" -> 1, "b" -> 2)
  )
)

但是,正如@LimbSoup在评论中指出的那样,这并不比按顺序执行多个插入更快地执行,因为它使用引擎盖下的executeBatch来发送包含一系列查询的语句到数据库中。

唯一的性能提升来自网络延迟(因为单个语句被发送到数据库)。

有关替代方法,请参阅此答案:Batch insert with table that has many columns using Anorm