DynamoDB DeleteItem en Go (AWS SDK v2)
DeleteItem supprime un seul élément par sa clé primaire complète. Dans l'AWS SDK for Go v2 tu appelles client.DeleteItem avec un dynamodb.DeleteItemInput ; avec types.ReturnValueAllOld la réponse t'indique si quelque chose a réellement été supprimé.
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)
}
}Explication
Key— doit inclure chaque attribut de clé primaire : la clé de partition seule pour une clé simple, ou la clé de partition et la clé de tri pour une clé composite.- La suppression est idempotente — supprimer une clé qui n'existe pas reste un succès (pas d'erreur). Avec
ReturnValues: types.ReturnValueAllOldl'élément supprimé revient dansout.Attributes; une carte vide signifie qu'il n'y avait rien. ReturnValuespourDeleteItemne prend en charge queNONE(par défaut) etALL_OLD— les optionsALL_NEW/UPDATED_*appartiennent àUpdateItem.- Suppression conditionnelle — ajoute un
ConditionExpression(par ex.attribute_exists(Artist)pour échouer sur un élément manquant, ou un garde-fou de valeur) ; une condition échouée renvoie un*types.ConditionalCheckFailedException, capté avecerrors.As. DeleteItemsupprime un élément par appel. Il n'y a pas d'API « tout supprimer » — pour vider une table, itère les clés avecScanet regroupe les suppressions en lot, ou supprime et recrée la table.
À faire visuellement
Tu protèges la suppression avec une condition ? Le DynamoDB Expression Builder assemble le ConditionExpression et les cartes de noms/valeurs pour toi.
Pour supprimer des éléments depuis une interface graphique — sélectionne des lignes, confirme, terminé, avec le code généré à un clic — télécharge DynoTable.
Exemples liés
- DynamoDB DeleteItem en Java — la même suppression avec l'AWS SDK for Java 2.x.
- DynamoDB PutItem en Go — le côté écriture de la même clé.
- Expressions de condition DynamoDB — protège les suppressions avec
attribute_existset des vérifications de valeur. - DynamoDB ConditionalCheckFailedException — ce que lève une suppression conditionnelle échouée, et quand c'est attendu.
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
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.