1

我有“RefNumber”、“status”和“Date”的表格。“RefNumber”是分区键,“Status”是排序键所以,两者都是主键。

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

现在获取此记录后,我想用“1”更新“状态”。我有多个工作人员读取 DynamoDB 记录,只是为了避免任何 2 个工作人员处理相同的记录,我想使用 ConditionExpression 使用“1”获取和更新“状态”,如果更新成功,工作人员将处理否则它将跳过。

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

4

1 回答 1

2

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

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

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

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

于 2018-11-01T15:11:29.897 回答