只需从ClojureQL的disj生成SQL!连词!和更新!功能

时间:2011-09-07 14:14:00

标签: clojure clojureql

有没有办法从ClojureQL的disj生成sql查询!连词!和更新!函数,而不是直接执行它们?

1 个答案:

答案 0 :(得分:1)

不,这些方法直接执行各自准备好的语句。它们都非常基本。对于conj!update-in!,请查看您在internal命名空间内找到的formatconj-rows函数中的update-vals调用:

 (format "INSERT INTO %s %s VALUES (%s)"
         (to-tablename table) columns template)

 (format "UPDATE %s SET %s WHERE %s"
         (to-tablename table) columns where)

对于disj!,ClojureQL使用的clojure.java.jdbcdelete-rows函数包含:

  (format "DELETE FROM %s WHERE %s"
          (as-identifier table) where)

所以基本上disj!能够使用java.jdbc的{​​{1}}和with-naming-strategy宏作为表名,而另一个则没有。