特定の行のJsonb列の値を更新しようとしています。 私は、クエリゴランのJsonb列を更新する
UPDATE instruction.file SET "details" = (jsonb_set("details",'{"UploadBy"}','"[email protected]"'::jsonb, true)) WHERE id=820;
これはpgAdmin3で正常に動作を実行しました。
私はGoコードで同じことを試みました。 IAMがエラーを取得: "PQ:タイプJSONのための無効な入力構文"
マイゴーコード:
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( '=(jsonb_set UPDATE SET instruction.file "詳細"( "詳細"、' { "UploadBy"}」、$ 1 :: jsonb、真) )WHERE id = $ 2 '、uname、 "820")もちろん、エラーは同じですか? –
はい。 Iamが同じエラーを受け取っています(json型の入力構文が無効です)。どのようにこれを解決するためのアイデア? – Hardy
実際には... goはスムースをjsonに変換しようとしていますか? –