gpt4 book ai didi

postgresql - 更新 golang 中的 Jsonb 列

转载 作者:IT王子 更新时间:2023-10-29 01:38:47 34 4
gpt4 key购买 nike

我正在尝试更新特定行的 Jsonb 列值。我运行了查询

UPDATE instruction.file SET "details" = (jsonb_set("details",'{"UploadBy"}','"test@test.com"'::jsonb, true)) WHERE id=820;

这在 pgAdmin3 中工作正常。

当我尝试在我的 Go 代码中执行相同操作时。我收到错误:“pq:json 类型的输入语法无效”

我的 Go 代码:

func main() {
uname := "test@test.com"

err := Init() //Db init
if err != nil {
fmt.Println("Error", err)
return
}

result, err1 := Db.Exec("UPDATE instruction.file SET \"details\" = (jsonb_set(\"details\",'{\"UploadBy\"}',$1::jsonb, true)) WHERE id=$2", uname, "820")
if err1 != nil {
fmt.Println("Error", err1)
return
}
n, err1 := result.RowsAffected()
if err1 != nil {
fmt.Println("Error", err1)
return
}

if n != 1 {
err1 = errors.New("Unable to update instruction.file")
fmt.Println("Error", err1)
return
}

fmt.Println("Success")
return
}

最佳答案

使用to_jsonb :

Db.Exec(`
UPDATE instruction.file
SET details = jsonb_set("details", '{"UploadBy"}', to_jsonb($1::text), true)
WHERE id = $2
`, uname, "820"
)

关于postgresql - 更新 golang 中的 Jsonb 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361418/

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