微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我试过传递一个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,ARRAY[ :uids ])

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

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

看起来像yesql中的一个错误,我应该:uid]永远不应该被解析为有效的密钥.

编辑:即将提交yesql错误,但它已经修复了最近发布的0.5.2版本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐