amazon-dynamodb - 是否可以更新 DynamoDB 中主键的属性值?

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

我有包含“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/

相关文章:

ruby - 使用 Ruby 了解 AWS DynamoDB 中的属性

amazon-web-services - 使用多个键更新 dynamodb golang

amazon-web-services - IN PartiQL 运算符是否查询或扫描 DynamoDB 表?

amazon-dynamodb - 如何删除dynamodb中表的排序键

go - 在 Golang 中查询 DynamoDB 的二级索引

node.js - 如何修复数据未插入本地 dynamodb (NodeJS)

amazon-web-services - 通过 dynamo db 中的多个属性查询

export - 自动 AWS DynamoDB 到 S3 导出失败并显示 "role/DataPipelineDefaultRole is invalid"

java - DynamoDB 查询使用非分区键获取项目

amazon-web-services - 如何使用 Appsync 中的 Resolver 获取 dynamodb 中存在的记录总数