我正在嘗試更新特定行的Jsonb列值。 我跑的查詢更新golang中的Jsonb列
UPDATE instruction.file SET "details" = (jsonb_set("details",'{"UploadBy"}','"[email protected]"'::jsonb, true)) WHERE id=820;
能正常工作的pgAdmin3。
當我試圖在我的Go代碼中做同樣的事情。蔭收到錯誤: 「PQ:類型JSON無效的輸入語法」
我的Go代碼:
func main() {
uname := "[email protected]"
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
}
'Db.Exec( 'UPDATE instruction.file SET 「細節」=(jsonb_set( 「詳細信息」,'{ 「UploadBy」}」,$ 1 :: jsonb,真) )WHERE id = $ 2',uname,「820」)'你當然試過了,錯誤是一樣的嗎?.. –
是的。 Iam得到相同的錯誤(json類型的輸入語法無效)。任何想法如何解決這個問題? – Hardy
不是真的...似乎想要將smth轉換爲json嗎?.. –