DynamoDB DeleteItem em Go (AWS SDK v2)
DeleteItem remove um único item pela sua chave primária completa. No AWS SDK for Go v2 você chama client.DeleteItem com um dynamodb.DeleteItemInput; com types.ReturnValueAllOld a resposta informa se algo foi de fato excluído.
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)
}
}Explicação
Key— deve incluir todos os atributos da chave primária: apenas a chave de partição para uma chave simples, ou chave de partição e chave de classificação para uma chave composta.- A exclusão é idempotente — excluir uma chave que não existe ainda é um sucesso (sem erro). Com
ReturnValues: types.ReturnValueAllOldo item excluído volta emout.Attributes; um mapa vazio significa que não havia nada ali. ReturnValuesparaDeleteItemsuporta apenasNONE(padrão) eALL_OLD— as opçõesALL_NEW/UPDATED_*pertencem aoUpdateItem.- Exclusão condicional — adicione uma
ConditionExpression(por exemplo,attribute_exists(Artist)para falhar em um item ausente, ou uma verificação de valor); uma condição falha retorna um*types.ConditionalCheckFailedException, correspondido comerrors.As. DeleteItemremove um item por chamada. Não existe uma API de "excluir tudo" — para esvaziar uma tabela, itere as chaves comScane agrupe as exclusões, ou apague e recrie a tabela.
Faça visualmente
Protegendo a exclusão com uma condição? O DynamoDB Expression Builder monta a ConditionExpression e os mapas de nome/valor por você.
Para excluir itens numa GUI — selecione linhas, confirme, pronto, com o código gerado a um clique de distância — baixe o DynoTable.
Exemplos relacionados
- DynamoDB DeleteItem em Java — a mesma exclusão com o AWS SDK for Java 2.x.
- DynamoDB PutItem em Go — o lado da gravação da mesma chave.
- Condition expressions do DynamoDB — proteja exclusões com
attribute_existse verificações de valor. - DynamoDB ConditionalCheckFailedException — o que uma exclusão condicional falha lança, e quando é esperado.
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
Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.