gpt4 book ai didi

postgresql - 如何在 clojure 中使用 yesql 插入和更新 postgres 数组?

转载 作者:行者123 更新时间:2023-11-29 11:28:28 25 4
gpt4 key购买 nike

我试过传递一个 clojure 向量,也试过以下格式:

-- name: insert-into-sometable<!
-- inserts in the sometable the lid and uids
INSERT INTO sometable
(lid, uids) values(:lid, ARRAY[:uids])

但这两种方法都会抛出数据不匹配错误。

我想如果我可以从查询文件中调用 postgres 数组函数,那么更新和插入就可以轻松完成。请帮忙。

提前致谢

最佳答案

您第二次尝试的错误消息给出了微妙的提示:

AssertionError Assert failed: Query argument mismatch.
Expected keys: (:uids])
Actual keys: (:uids)
Missing keys: (:uids])

很明显,当 yesql 试图解析 :uids 键时,事情就变糟了,因为它附加了数组定义的右括号。让我们试试别的:

-- name: insert-into-sometable<!
-- inserts in the sometable the lid and uids
INSERT INTO sometable
(lid, uids) values(:lid, ARRAY[ :uids ])

注意 :uids 和数组括号之间的额外空格。

=> (insert-into-sometable<! {:lid 1, :uids [1 2 42])
;; => 1

在我看来,这像是 yesql 中的错误,:uid] 永远不应被解析为有效键。

编辑:本来打算用 yesql 提交一个错误,但它已经用最近发布的 0.5.2 版本修复了。

关于postgresql - 如何在 clojure 中使用 yesql 插入和更新 postgres 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35513113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com