您好,这是我收到的错误,似乎无法发现我的SQL语句出了什么问题。猜想眼睛不会受伤
UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?
这是包含该语句的函数
(defn release
[m]
(db/execute!
(core/db)
(str "UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?")
[(name (m :current-state))
(m :entity-id)]))
这是我们从
收到的错误(defn get-unfinished-sales
[]
(db/query
(score/db)
(str "select * from sales where state_name = 'in-progress'")))
(defn unlock-sales
[usales]
(doall (map (fn [sale]
(->
(score/put-batch
{:user core/system-user
:messages [{:entity-id (sale :entity-id)
:message-type "release"
:message {}}]
}
:sales)
(core/log-result-if-failure))) usales)))
(defn
run
[& args]
(->>
(get-unfinished-sales)
(filter (fn [row] (not (nil? (row :sales-timer)))))
(filter (fn [row] (> (t/in-hours (t/interval (row :sales-timer) (t/now))) 1)))
(unlock-sales)))
答案 0 :(得分:2)
您对db/execute!
的调用应将SQL字符串作为带有参数的向量中的第一项:
(defn release
[m]
(db/execute!
(core/db)
["UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?"
(name (m :current-state))
(m :entity-id)]))