Chi*_*365 5 postgresql clojure
我试过传递一个clojure矢量,也尝试了以下格式:
-- name: insert-into-sometable<!
-- inserts in the sometable the lid and uids
INSERT INTO sometable
(lid, uids) values(:lid, ARRAY[:uids])
Run Code Online (Sandbox Code Playgroud)
但这两种方法都会引发数据不匹配错误.
我想如果我可以从查询文件中调用postgres数组函数,那么更新和插入可以很容易地完成.请帮忙.
提前致谢
第二次尝试的错误消息给出了微妙的提示:
AssertionError Assert failed: Query argument mismatch.
Expected keys: (:uids])
Actual keys: (:uids)
Missing keys: (:uids])
Run Code Online (Sandbox Code Playgroud)
显然,当 yesql 尝试解析:uids
键(因为它附加了数组定义的右括号)时,事情就出问题了。让我们尝试一下其他的东西:
-- name: insert-into-sometable<!
-- inserts in the sometable the lid and uids
INSERT INTO sometable
(lid, uids) values(:lid, ARRAY[ :uids ])
Run Code Online (Sandbox Code Playgroud)
:uids
请注意数组括号之间的额外空格。
=> (insert-into-sometable<! {:lid 1, :uids [1 2 42])
;; => 1
Run Code Online (Sandbox Code Playgroud)
对我来说,这像是 yesql 中的一个错误,:uid]
永远不应该被解析为有效的密钥。
编辑:本来打算用 yesql 提交一个错误,但它已经在最近发布的 0.5.2 版本中修复了。
归档时间: |
|
查看次数: |
528 次 |
最近记录: |