hash - read - dynamodb relationships
¿Qué pasará si insertamos en la base de datos de dynamo con una clave de hash duplicada? (2)
Estoy tratando de insertar en el dínamo DB. Cuando llamo a la función putItem, ¿qué pasará si la clave hash ya está presente en la base de datos? ¿El objeto PutItemResult contiene algo que nos diga si se intentó una entrada de hash duplicada? Quiero evitar ejecutar otra consulta para verificar si hay una entrada con la clave hash que estoy usando.
Puede usar ''withReturnValues (ReturnValue.ALL_OLD)'' que devolverá un Mapa de PutItemResult.getAttributes de los valores que existían antes de la inserción.
Si PutItemResult.getAttributes devuelve un valor nulo, era una nueva entrada.
Si inserta un elemento en una clave primaria existente, se sobrescribirá a menos que use los "valores esperados". Aquí está la introducción de la documentación oficial:
http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_PutItem.html
Crea un nuevo elemento, o reemplaza un elemento antiguo con un nuevo elemento (incluidos todos los atributos). Si ya existe un elemento en la tabla especificada con la misma clave principal, el nuevo elemento reemplaza completamente al elemento existente. Puede realizar una colocación condicional (insertar un nuevo elemento si no existe uno con la clave primaria especificada), o reemplazar un elemento existente si tiene ciertos valores de atributo.
Nota
Para asegurarse de que un nuevo elemento no reemplace un elemento existente, use una operación de colocación condicional con Exists establecido en falso para el atributo de clave principal, o atributos.
De lo contrario, también puede usar UpdateItem
para actualizar los campos de un elemento preexistente: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html