postgresql 将golang切片直接插入postgres数组

l7wslrjt  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(2)|浏览(182)

我在将切片直接插入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包和"www.example.com" postgres驱动程序。github.com/lib/pq" postgres driver.

5f0d552i

5f0d552i1#

您应该使用pq.Array(favorites)来正确地插入它。
这就像:

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

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

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

9wbgstp72#

对相应的golang切片使用pq.array将帮助您插入数组。

q = q.Values(result.Id, result.Text, result.CreatedAt, pq.Array(result.EditHistoryTweetIds))

这里EditHistoryTweetId将被切片。

相关问题