如何访问生成的密钥以用于 clojure jdbc 插入



如何从返回的映射中获取生成的密钥。它似乎以"()"结尾,我似乎不能像常规键一样使用它。

(defn create-map-db [mapname]
  (insert! db-settings :MAP_TABLE {:M_NAME mapname})
  )
(first (create-map-db "Moskau"))
=> {:scope_identity() 3}
(type (first (create-map-db "Moskau")))
=> clojure.lang.PersistentArrayMap
(get (first (create-map-db "Moskau")) :scope_identity())
=> ()
(get (first (create-map-db "Moskau")) :scope_identity)
=> nil

我可以看到以下内容是最便携的解决方案:

(first (vals (first (create-map-db "Moskau"))))

但是,如果您真的想要,则可以使用以下方法直接访问密钥:

(def generated-key (keyword "scope_identity()"))
(generated-key (first (create-map-db "Moskau")))

这也可用于获取所有生成的密钥:

(map generated-key (create-map-db "Moskau"))

最新更新