Можно ли обновить значение атрибута, которое является частью первичного ключа в DynamoDB?
У меня есть таблица с "RefNumber", "status" и "Date". "RefNumber" - это ключ раздела, а "Status" - ключ сортировки. Итак, оба делают первичный ключ.
{
"RefNumber": "122345",
"Status": "0",
"DateTime": 15343354545
}
Теперь после извлечения этой записи я хочу обновить "Status" на "1". У меня есть несколько рабочих, читающих записи DynamoDB, просто чтобы любые 2 рабочих не обрабатывали одну и ту же запись, я хочу получить и обновить "Status" с помощью "1", используя ConditionExpression, если обновление выполнено успешно, рабочий будет обрабатывать, иначе он пропустит.
Мой вопрос, это хороший дизайн, чтобы обновить значение атрибута, который является частью первичного ключа в DynamodB
1 ответ
Краткий ответ - Нет, невозможно обновить атрибут, который формирует ключ элемента в DynamoDB.
Вы можете только удалить элемент и создать еще один.
Если вы рассмотрите это, логически, изменение ключа элемента не имеет никакого смысла: элемент однозначно идентифицируется по его ключу, так что же это означает, что вы изменяете ключ? Это будет означать, что старый элемент заменен полностью.
DynamoDB не предлагает элементарной операции "замены".