我正在尝试更新特定行的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;
答案 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"`
我不知道这是否是正确的答案。但它确实有效。