首页 > 解决方案 > 将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 驱动程序。

标签: postgresqlgo

解决方案


您应该使用 pq.Array(favorites) 正确插入它。正如您在源代码中看到的

就像:

favorites := []int{1,2,3,4,5}

query:= "UPDATE users SET favorites = $1;"

_, err = db.Exec(query, pq.Array(favorites))

推荐阅读