Можно ли обновить значение атрибута, которое является частью первичного ключа в DynamoDB? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть таблица с «RefNumber», «status» и «Date». «RefNumber» - это ключ раздела, а «Status» - ключ сортировки. Итак, оба делают первичный ключ.

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

Теперь, после извлечения этой записи, я хочу обновить «Status» на «1». У меня есть несколько рабочих, читающих записи DynamoDB, просто чтобы любые 2 рабочих не обрабатывали одну и ту же запись, которую я хочу получить, и обновите «Status» с помощью «1», используя ConditionExpression, если обновление завершится успешно, рабочий будет работать, иначе он пропустит.

Мой вопрос, это хороший дизайн, чтобы обновить значение атрибута, которое является частью первичного ключа в DynamodB

1 Ответ

0 голосов
/ 01 ноября 2018

Краткий ответ: Нет, невозможно обновить атрибут, который формирует ключ элемента в DynamoDB .

Вы можете только удалить элемент и создать еще один.

Если вы считаете это логически, изменение ключа элемента не имеет никакого смысла: элемент однозначно идентифицируется по ключу, так что же это означает, что вы изменяете ключ? Это будет означать, что старый элемент заменен полностью.

DynamoDB не предлагает элементарной операции «замены».

...