我有包含“RefNumber”、“status”和“Date”的表格。 “RefNumber”是分区键,“Status”是排序键,因此,两者都构成主键。
{
"RefNumber": "122345",
"Status": "0",
"DateTime": 15343354545
}
现在,在获取此记录后,我想将“Status”更新为“1”。我有多个工作人员读取 DynamoDB 记录,只是为了避免任何 2 个工作人员处理相同的记录,我想使用 ConditionExpression 获取并更新“状态”为“1”,如果更新成功,工作人员将处理,否则它将跳过。
我的问题是,更新dynamodb中主键的属性值是否是一个好的设计
最佳答案
简短的回答是不,不可能更新构成 DynamoDB 中项目键的属性。
您只能删除该项目并创建另一个项目。
如果你考虑到这一点,从逻辑上讲,修改元素的键没有任何意义:元素是由它的键唯一标识的,那么你改变键意味着什么呢?这意味着旧元素被完全替换。
DynamoDB 不提供原子“替换”操作。
关于amazon-dynamodb - 是否可以更新 DynamoDB 中主键的属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53103932/