更新属性"时间戳"保留字

时间:2018-02-06 23:01:21

标签: amazon-dynamodb boto3

我需要使用boto3更新我的dynamodb表中的timestamp属性,但是属性名称" timestamp"是保留字,因此它在SET命令上抛出错误。

table.update_item(
    Key={
        'id': item_id
    },
    UpdateExpression='SET timestamp = :val1', # this is the line giving the problem
    ExpressionAttributeValues={
        ":val1": new_timestamp
    }
)

" errorMessage":"调用UpdateItem操作时发生错误(ValidationException):无效的UpdateExpression:属性名称是保留关键字;保留关键字:timestamp",

1 个答案:

答案 0 :(得分:23)

您可以使用expression attribute names解决此问题(类似于您已使用的ExpressionAttributeValues)。

table.update_item(
  Key={
    'id': item_id
  },
  UpdateExpression='SET #ts = :val1',
  ExpressionAttributeValues={
    ":val1": new_timestamp
  },
  ExpressionAttributeNames={
    "#ts": "timestamp"
  }
)

在此处阅读所有相关信息:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html