在golang中更新Jsonb列

时间:2017-02-21 07:45:37

标签: postgresql go

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

SPC f y

这在pgAdmin3中工作正常。

当我尝试在Go代码中执行相同操作时。我得到错误:" pq:json"

类型的输入语法无效

我的Go代码:

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

2 个答案:

答案 0 :(得分:2)

使用to_jsonb

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

答案 1 :(得分:0)

我设法删除了错误:

“uname”是类型字符串,创建时如下:

uname := "test@test.com"

它应该是一个json变量。必须创建如下:

uname := `"test@test.com"`

我不知道这是否是正确的答案。但它确实有效。