Go'da DynamoDB DeleteItem (AWS SDK v2)
DeleteItem, tek bir öğeyi tam birincil anahtarıyla kaldırır. Go v2 için AWS SDK'da bir dynamodb.DeleteItemInput ile client.DeleteItem'i çağırırsınız; types.ReturnValueAllOld ile yanıt, gerçekten bir şeyin silinip silinmediğini size söyler.
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)
}
}Açıklama
Key— her birincil anahtar özniteliğini içermelidir: basit bir anahtar için yalnızca bölüm anahtarı ya da bileşik bir anahtar için bölüm ve sıralama anahtarı.- Silme idempotenttir — var olmayan bir anahtarı silmek yine de bir başarıdır (hata yok).
ReturnValues: types.ReturnValueAllOldile silinen öğeout.Attributesiçinde geri döner; bir boş eşleme orada hiçbir şey olmadığı anlamına gelir. DeleteItemiçinReturnValuesyalnızcaNONE(varsayılan) veALL_OLD'u destekler —ALL_NEW/UPDATED_*seçenekleriUpdateItem'a aittir.- Koşullu silme — bir
ConditionExpressionekleyin (örneğin var olmayan bir öğede başarısız olmak içinattribute_exists(Artist)ya da bir değer koruması); başarısız bir koşul,errors.Asile eşleştirilen bir*types.ConditionalCheckFailedExceptiondöndürür. DeleteItem, çağrı başına bir öğe kaldırır. "Tümünü sil" API'si yoktur — bir tabloyu boşaltmak içinScanile anahtarlar üzerinde yineleyin ve silmeleri toplu hâle getirin ya da tabloyu düşürüp yeniden oluşturun.
Görsel olarak yapın
Silmeyi bir koşulla mı koruyorsunuz? DynamoDB Expression Builder, ConditionExpression'ı ve ad/değer eşlemelerini sizin için bir araya getirir.
Bir grafik arayüzden (GUI) öğe silmek için — satırları seçin, onaylayın, bitti; üretilen kod bir tık uzakta — DynoTable'ı indirin.
İlgili örnekler
- Java'da DynamoDB DeleteItem — Java 2.x için AWS SDK ile aynı silme.
- Go'da DynamoDB PutItem — aynı anahtarın yazma tarafı.
- DynamoDB koşul ifadeleri — silmeleri
attribute_existsve değer kontrolleriyle koruyun. - DynamoDB ConditionalCheckFailedException — başarısız bir koşullu silmenin ne fırlattığı ve ne zaman beklendiği.
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
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.