如何在 Clojure 中执行批量 SQL 更新查询?

Ale*_*kov 4 jdbc clojure

如何在引擎盖下使用准备好的语句作为单个批处理调用对数千行执行以下查询?

(clojure.java.jdbc/execute! db ["UPDATE person SET zip = ? WHERE zip = ?" 94540 94546])
Run Code Online (Sandbox Code Playgroud)

是否Clojure的/ JDBC具有适当的功能或者用于的东西?

Ale*_*kov 6

找到了答案。适用功能clojure.java.jdbc/db-do-prepared带启用:multi?键。

(clojure.java.jdbc/db-do-prepared db
  ["UPDATE person SET zip = ? WHERE zip = ?"
   [94540 94546]
   [94541 94547]
   ...
  ] 
  {:multi? true})
Run Code Online (Sandbox Code Playgroud)