我有带有“ RefNumber”,“ status”和“ Date”的表。 “ RefNumber”是分区键,“ Status”是排序键因此,两者都构成主键。
{
"RefNumber": "122345",
"Status": "0",
"DateTime": 15343354545
}
现在,在获取此记录之后,我想将“状态”更新为“ 1”。我有多个工作程序正在读取DynamoDB记录,只是为了避免任何2个工作程序处理我想获取的同一条记录,并使用ConditionExpression用“ 1”更新“状态”,如果更新成功,工作程序将进行处理,否则它将跳过。 / p>
我的问题是,更新作为dynamodb主键一部分的属性值是否是一个好的设计
答案 0 :(得分:1)
简短的回答是否,无法更新构成DynamoDB中项的键的属性。
您只能删除该项目并创建另一个。
如果您从逻辑上考虑,修改元素的键没有任何意义:元素由其键唯一地标识,那么这意味着您要对键进行突变呢?这意味着旧元素将被完全替换。
DynamoDB不提供原子性的“替换”操作。