是否可以更新DynamoDB主键中一部分的属性值?

时间:2018-11-01 15:03:54

标签: amazon-dynamodb dynamodb-queries amazon-dynamodb-index

我有带有“ RefNumber”,“ status”和“ Date”的表。 “ RefNumber”是分区键,“ Status”是排序键因此,两者都构成主键。

{
    "RefNumber": "122345",
    "Status": "0",
    "DateTime": 15343354545
}

现在,在获取此记录之后,我想将“状态”更新为“ 1”。我有多个工作程序正在读取DynamoDB记录,只是为了避免任何2个工作程序处理我想获取的同一条记录,并使用ConditionExpression用“ 1”更新“状态”,如果更新成功,工作程序将进行处理,否则它将跳过。 / p>

我的问题是,更新作为dynamodb主键一部分的属性值是否是一个好的设计

1 个答案:

答案 0 :(得分:1)

简短的回答是否,无法更新构成DynamoDB中项的键的属性

您只能删除该项目并创建另一个。

如果您从逻辑上考虑,修改元素的键没有任何意义:元素由其键唯一地标识,那么这意味着您要对键进行突变呢?这意味着旧元素将被完全替换。

DynamoDB不提供原子性的“替换”操作。