使用 Go 更新 DynamoDB 中的多个值

我正在尝试更新 DynamoDb 表中的值 1 和值 2 项目属性,但只设置一个参数 (value1)。尝试同时包含值 1 和值 2 () 会导致:UpdateExpressionaws.String("set value1= :r, set value2= :c")


Got error calling UpdateItem: %s

ValidationException: Invalid UpdateExpression: Syntax error; token: "set", near: ", set 

HashValue" status code: 400, request id:******

如何更新数据库项中的多个字段?


--


func UpdateObject(obj MyObject) (string, error) {


sess := session.Must(session.NewSessionWithOptions(session.Options{

    SharedConfigState: session.SharedConfigEnable,

}))


// Create DynamoDB client

svc := dynamodb.New(sess)


// Update item in table Movies

tableName := "MyTable"


input := &dynamodb.UpdateItemInput{

    ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{

        ":r": {

            N: aws.String(strconv.Itoa(obj.value1)),

        },

        ":c": {

            S: aws.String(obj.value2),

        },

    },

    TableName: aws.String(tableName),

    Key: map[string]*dynamodb.AttributeValue{

        "ThreatID": {

            N: aws.String(strconv.Itoa(obj.value3)),

        },

        "ThreatName": {

            S: aws.String(obj.value4),

        },

    },

    ReturnValues:     aws.String("UPDATED_NEW"),

    UpdateExpression: aws.String("set value1= :r"),

}


 //........


}

--


 type MyObject struct {

     value3 int

     value4 string

     value2 string

     value1 int

   }


浮云间
浏览 137回答 1
1回答

有只小跳蛙

使用以下语法:aws.String("set value1= :r, value2= :c")参考资料: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go