DeleteItem - Amazon DynamoDB

DeleteItem

importante

Esta sección se refiere a la versión 2011-12-05 del API, que está obsoleta y no debe utilizarse para nuevas aplicaciones.

Para consultar la documentación sobre la API de bajo nivel actual, consulte la Referencia de la API de Amazon DynamoDB.

Descripción

Elimina un solo elemento de una tabla por su clave principal Puede realizar una operación de eliminación condicional que elimina el elemento si existe o si tiene un valor de atributo esperado.

nota

Si especifica DeleteItem sin atributos ni valores, se eliminan todos los atributos del elemento.

A menos que especifique condiciones, DeleteItem es una operación idempotente; aunque se ejecute varias veces en el mismo elemento o atributo no se obtiene una respuesta de error.

Las eliminaciones condicionales solo son útiles para eliminar elementos y atributos cuando se cumplen determinadas condiciones. Si se cumplen las condiciones, DynamoDB lleva a cabo la eliminación. De lo contrario, el elemento no se elimina.

Puede llevar a cabo la comprobación condicional esperada en un atributo por operación.

Solicitudes

Sintaxis

// This header is abbreviated. // For a sample of a complete header, see API de bajo nivel de DynamoDB. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.DeleteItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Key": {"HashKeyElement":{"S":"AttributeValue1"},"RangeKeyElement":{"N":"AttributeValue2"}}, "Expected":{"AttributeName3":{"Value":{"S":"AttributeValue3"}}}, "ReturnValues":"ALL_OLD"} }
Nombre Descripción Obligatorio
TableName

Nombre de la tabla que contiene el elemento que se va a eliminar.

Tipo: cadena

Key

Clave principal que define el elemento. Para obtener más información sobre claves principales, consulte Clave principal.

Tipo: Map, mapa de HashKeyElement a su valor y RangeKeyElement a su valor.

Expected

Designa un atributo para una eliminación condicional. El parámetro Expected le permite proporcionar un nombre de atributo e indicar si DynamoDB debe verificar o no si el atributo tiene un valor determinado antes de eliminarlo.

Tipo: Map, mapa de nombres de atributos.

No
Expected:AttributeName

Nombre del atributo para la operación Put condicional.

Tipo: cadena

No
Expected:AttributeName: ExpectedAttributeValue Use este parámetro para especificar si ya existe un valor del par de nombre-valor del atributo.

En la siguiente notación JSON, se elimina el elemento si todavía no existe el atributo "Color" para ese elemento:

"Expected" : {"Color":{"Exists":false}}

En la siguiente notación JSON se comprueba si el atributo denominado "Color" tiene el valor "Yellow" antes de eliminar el elemento:

"Expected" : {"Color":{"Exists":true},{"Value":{"S":"Yellow"}}}

De forma predeterminada, si utiliza el parámetro Expected y le proporciona un Value, DynamoDB da por hecho que el atributo existe y que posee un valor que hay que sustituir. Por lo tanto, no es preciso especificar {"Exists":true}, porque se considera implícito. Puede reducir la solicitud a:

"Expected" : {"Color":{"Value":{"S":"Yellow"}}}
nota

Si especifica {"Exists":true} sin un valor de atributo que verificar, DynamoDB devuelve un error.

No
ReturnValues

Use este parámetro si desea obtener los pares de nombre-valor de los atributos antes de eliminarlos. Los valores posibles de los parámetros son NONE (predeterminado) o ALL_OLD. Si se especifica ALL_OLD, se devuelve el contenido del elemento anterior. Si este parámetro no se proporciona o si su valor es NONE, no se devuelve nada.

Tipo: cadena

No

Respuestas

Sintaxis

HTTP/1.1 200 OK x-amzn-RequestId: CSOC7TJPLR0OOKIRLGOHVAICUFVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 353 Date: Tue, 12 Jul 2011 21:31:03 GMT {"Attributes": {"AttributeName3":{"SS":["AttributeValue3","AttributeValue4","AttributeValue5"]}, "AttributeName2":{"S":"AttributeValue2"}, "AttributeName1":{"N":"AttributeValue1"} }, "ConsumedCapacityUnits":1 }
Nombre Descripción
Attributes

Si el parámetro ReturnValues se suministra como ALL_OLD en la solicitud, DynamoDB devuelve una matriz de pares de nombre-valor del atributo (es decir, el elemento eliminado). De lo contrario, la respuesta contiene un conjunto vacío.

Tipo: Array; matriz de pares de nombre-valor del atributo.

ConsumedCapacityUnits

Cantidad de unidades de capacidad de escritura consumidas por la operación. Este valor muestra el número aplicado al rendimiento aprovisionado. Cada solicitud de eliminación de elementos inexistentes consume una unidad de capacidad de escritura. Para obtener más información, consulte Modo de capacidad aprovisionada de DynamoDB.

Tipo: Number

Errores especiales

Error Descripción
ConditionalCheckFailedException Error en la verificación condicional. No se encontró un valor de atributo esperado.

Ejemplos

Solicitud de ejemplo

// This header is abbreviated. // For a sample of a complete header, see API de bajo nivel de DynamoDB. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.DeleteItem content-type: application/x-amz-json-1.0 {"TableName":"comp-table", "Key": {"HashKeyElement":{"S":"Mingus"},"RangeKeyElement":{"N":"200"}}, "Expected": {"status":{"Value":{"S":"shopping"}}}, "ReturnValues":"ALL_OLD" }

Respuesta de ejemplo

HTTP/1.1 200 OK x-amzn-RequestId: U9809LI6BBFJA5N2R0TB0P017JVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 353 Date: Tue, 12 Jul 2011 22:31:23 GMT {"Attributes": {"friends":{"SS":["Dooley","Ben","Daisy"]}, "status":{"S":"shopping"}, "time":{"N":"200"}, "user":{"S":"Mingus"} }, "ConsumedCapacityUnits":1 }