Saltar al contenido

La eliminación de elementos inexistentes de DynamoDb no falla, ¿por qué?

Solución:

Es por diseño:

A menos que especifique condiciones, DeleteItem es una operación idempotente; ejecutarlo varias veces en el mismo elemento o atributo no da como resultado una respuesta de error.

DE: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html

Es posible utilizar ReturnValues ​​para determinar si la eliminación hizo algo o no. Si ReturnValues.Attributes está vacío, significa que eliminar no encontró un registro para eliminar, y puede arrojar un error en este caso. Ejemplo en JavaScript:

async function deleteWithThrowIfNotExists() {
  const dynamo = new AWS.DynamoDB.DocumentClient();
  const parameters = {
    Key: {
      user: 'john'
    },
    ReturnValues: 'ALL_OLD',
    TableName: 'users'
  };
  const response = await dynamo.delete(parameters).promise();
  if (!response.Attributes) {
    throw new Error('Cannot delete item that does not exist')
  }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *