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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам