DynamoDB 更新项目失败

我正在使用 DynamoDB Go SDK 进行 CRUD 操作。我验证PutItem并且GetItem通话工作正常。但是,当我使用UpdateItemwhich 更新某些属性时,它会失败。我将其缩小到特定于以纪元格式存储当前时间戳的属性。


    updateItem := &dynamodb.UpdateItemInput{

        TableName:aws.String(tableName),

        ExpressionAttributeValues: map[string]*dynamodb.AttributeValue{

            ":r": {

                S:aws.String("Renamed"),

            },

            ":rp": {

                S: aws.String("RenamingParty"),

            },

            ":rr": {

                S: aws.String("RenameReason"),

            },

            "rt": {

                N: aws.String(strconv.FormatInt(time.Now().Unix(), 10)),

            },

        },

        Key: map[string]*dynamodb.AttributeValue{

            "pKey": {

                S: aws.String(pKey),

            },

            "rKey": {

                S:aws.String(rKey),

            },

        },

        ReturnValues:aws.String("ALL_NEW"),

        UpdateExpression:aws.String("set RenameStatus = :r, RenamingParty = :rp, RenameReason = :rr RenameTime = :rt"),

    }


    _, err := svc.UpdateItem(updateItem)

返回错误:


更新项目失败:%v ValidationException:ExpressionAttributeValues 包含无效键:语法错误;键:“rt”状态码:400,请求ID:


jeck猫
浏览 127回答 1
1回答

慕尼黑8549860

您的属性似乎rt缺少:-> :rt:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go