【问题标题】:DynamoDB UpdateItem failedDynamoDB 更新项目失败
【发布时间】:2019-12-26 19:26:54
【问题描述】:

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

    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:

【问题讨论】:

    标签: go amazon-dynamodb unix-timestamp


    【解决方案1】:

    您的属性rt 似乎缺少: -> :rt :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-29
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2019-02-16
      相关资源
      最近更新 更多