postgresql - 将golang切片直接插入postgres数组
问题描述
我在将 slice 直接插入 postgres 数组时遇到问题,找不到简单的解决方案。
鉴于:
favorites := []int{1,2,3,4,5}
// need to
_, err = db.Exec(fmt.Sprintf("UPDATE users SET favorites = '{%v}';", favorites))
因为输入是 '{[1,2,3,4,5]}' 而不是 '{1,2,3,4,5}' 我有一个错误。我正在使用默认 SQL 包和“github.com/lib/pq”postgres 驱动程序。
解决方案
您应该使用 pq.Array(favorites) 正确插入它。正如您在源代码中看到的
就像:
favorites := []int{1,2,3,4,5}
query:= "UPDATE users SET favorites = $1;"
_, err = db.Exec(query, pq.Array(favorites))
推荐阅读
- postgresql - 如何对一行 PostgreSQL 中的值求和?
- c# - Xamarin:BroadCastReceiver 使用打开弹出窗口的点击事件发送通知
- mapstruct - 如何从集合映射到集合属性?
- java - Jersey/HK2中一个接口的两种实现,在其他中重用
- vb.net - 添加条件不起作用的新记录
- duplicates - 在记事本++中查找重复项
- html - 如何在 VB.net Web 应用程序中创建 Picturebox?
- typescript - 使用单个 NonNullable 元素键入 Array 的正确方法是什么?
- widget - HoloViz,面板。DateRangeSlider 或 DateSlider:如何将步骤更改为小时而不是天?
- asp.net-core - 如何在 ASP.NET Core API 中下载文件