【问题标题】:Is it possible to update the attribute value which is part of the primary key in DynamoDB?是否可以更新作为 DynamoDB 中主键一部分的属性值?
【发布时间】:2018-11-01 15:03:54
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的快速回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多