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

Is it possible to update the attribute value which is part of the primary key in DynamoDB?

我有 table 和 "RefNumber"、"status" 和 "Date"。 "RefNumber"是partition Key,"Status"是sort key 所以,两者都是主键。

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

获取此记录后,我想将 "Status" 更新为“1”。我有多个工作人员读取 DynamoDB 记录,只是为了避免任何 2 个工作人员处理同一条记录我想使用 ConditionExpression 获取并更新 "Status" 为“1”,如果更新成功,工作人员将处理,否则它将跳过.

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

简短的回答是不,不可能更新构成 DynamoDB 中项目键的属性

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

如果你考虑到这一点,从逻辑上讲,修改元素的键没有任何意义:一个元素由它的键唯一标识,那么改变键甚至意味着什么?这将意味着旧元素被完全替换。

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