DynamoDB DeleteItem en Go (AWS SDK v2)
DeleteItem elimina un único item por su clave primaria completa. En AWS SDK para Go v2 llamas a client.DeleteItem con un dynamodb.DeleteItemInput; con types.ReturnValueAllOld la respuesta te indica si realmente se eliminó algo.
Code
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
"github.com/aws/aws-sdk-go-v2/service/dynamodb/types"
)
func main() {
ctx := context.TODO()
cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion("us-east-1"))
if err != nil {
log.Fatalf("load config: %v", err)
}
client := dynamodb.NewFromConfig(cfg)
out, err := client.DeleteItem(ctx, &dynamodb.DeleteItemInput{
TableName: aws.String("Music"),
Key: map[string]types.AttributeValue{
"Artist": &types.AttributeValueMemberS{Value: "Arturo Sandoval"},
"SongTitle": &types.AttributeValueMemberS{Value: "Cubano Chant"},
},
ReturnValues: types.ReturnValueAllOld,
})
if err != nil {
log.Fatalf("delete item: %v", err)
}
if len(out.Attributes) == 0 {
fmt.Println("No item with that key existed")
} else {
fmt.Println("Deleted:", out.Attributes)
}
}Explicación
Key— debe incluir cada atributo de la clave primaria: solo la clave de partición para una clave simple, o la clave de partición y la de ordenación para una clave compuesta.- El borrado es idempotente — borrar una clave que no existe sigue siendo un éxito (sin error). Con
ReturnValues: types.ReturnValueAllOldel item eliminado vuelve enout.Attributes; un mapa vacío significa que no había nada. ReturnValuesparaDeleteItemsolo admiteNONE(por defecto) yALL_OLD— las opcionesALL_NEW/UPDATED_*pertenecen aUpdateItem.- Borrado condicional — añade un
ConditionExpression(por ejemplo,attribute_exists(Artist)para fallar ante un item ausente, o una guarda de valor); una condición fallida devuelve un*types.ConditionalCheckFailedException, emparejado conerrors.As. DeleteItemelimina un item por llamada. No hay una API de "borrar todo" — para vaciar una tabla, itera las claves conScany agrupa los borrados en lotes, o elimina y recrea la tabla.
Hazlo visualmente
¿Protegiendo el borrado con una condición? El DynamoDB Expression Builder monta por ti el ConditionExpression y los mapas de nombres/valores.
Para eliminar items desde una interfaz gráfica — selecciona filas, confirma, listo, con el código generado a un clic — descarga DynoTable.
Ejemplos relacionados
- DynamoDB DeleteItem en Java — el mismo borrado con AWS SDK para Java 2.x.
- DynamoDB PutItem en Go — el lado de escritura de la misma clave.
- Expresiones de condición de DynamoDB — protege los borrados con
attribute_existsy comprobaciones de valor. - DynamoDB ConditionalCheckFailedException — lo que lanza un borrado condicional fallido, y cuándo se espera.
References
- DeleteItem — Amazon DynamoDB API Reference
- Use DeleteItem with an AWS SDK or CLI — Amazon DynamoDB Developer Guide
- dynamodb package — AWS SDK for Go v2 (pkg.go.dev)
- dynamodb/types package — AWS SDK for Go v2 (pkg.go.dev)
- Condition expressions — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.