Что произойдет, если мы вставим в DB динамомашины дубликат хеш-ключа? - программирование

Что произойдет, если мы вставим в DB динамомашины дубликат хеш-ключа?

Я пытаюсь вставить в DB динамомашины. Когда я вызываю функцию putItem, что произойдет, если хэш-ключ уже присутствует в БД? Объект PutItemResult содержит что-то, что может сказать нам, если была предпринята попытка повторной записи хеша? Я хочу, чтобы не запускать другой запрос, чтобы проверить, есть ли запись с хеш-ключом, который я использую.

4b9b3361

Ответ 1

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

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_PutItem.html

Создает новый элемент или заменяет старый элемент новым элементом (включая все атрибуты). Если элемент уже существует в указанной таблице с тем же самым первичным ключом, новый элемент полностью заменяет существующий элемент. Вы можете выполнить условный put (вставить новый элемент, если один с указанным основным ключом не существует) или заменить существующий элемент, если он имеет определенные значения атрибутов.

Примечание

Чтобы новый элемент не заменил существующий элемент, используйте операцию условного ввода, в которой Exists установлено значение false для атрибута первичного ключа или атрибутов.

В противном случае вы можете также использовать UpdateItem для обновления полей существующего элемента: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

Ответ 2

Вы можете использовать 'withReturnValues ​​(ReturnValue.ALL_OLD)', который вернет карту из PutItemResult.getAttributes значений, которые были там до вставки.

Если PutItemResult.getAttributes возвращает null, это была новая запись.