DynamoDB DeleteItem di Go (AWS SDK v2)
DeleteItem menghapus satu item berdasarkan primary key lengkap-nya. Di AWS SDK for Go v2 Anda memanggil client.DeleteItem dengan dynamodb.DeleteItemInput; dengan types.ReturnValueAllOld, response memberi tahu Anda apakah ada sesuatu yang benar-benar terhapus.
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)
}
}Penjelasan
Key— harus menyertakan setiap atribut primary key: partition key saja untuk key sederhana, atau partition dan sort key untuk key komposit.- Delete bersifat idempoten — menghapus key yang tidak ada tetap merupakan keberhasilan (tanpa error). Dengan
ReturnValues: types.ReturnValueAllOld, item yang terhapus kembali diout.Attributes; map kosong berarti tidak ada apa-apa di sana. ReturnValuesuntukDeleteItemhanya mendukungNONE(default) danALL_OLD— opsiALL_NEW/UPDATED_*milikUpdateItem.- Conditional delete — tambahkan
ConditionExpression(mis.attribute_exists(Artist)untuk gagal pada item yang hilang, atau sebuah value guard); kondisi yang gagal mengembalikan*types.ConditionalCheckFailedException, dicocokkan denganerrors.As. DeleteItemmenghapus satu item per panggilan. Tidak ada API "delete all" — untuk mengosongkan tabel, iterasi key denganScandan batch penghapusannya, atau drop dan buat ulang tabel.
Lakukan secara visual
Menjaga penghapusan dengan sebuah kondisi? DynamoDB Expression Builder menyusun ConditionExpression dan map name/value untuk Anda.
Untuk menghapus item dari GUI — pilih baris, konfirmasi, selesai, dengan kode yang dihasilkan hanya satu klik jauhnya — unduh DynoTable.
Contoh terkait
- DynamoDB DeleteItem di Java — penghapusan yang sama dengan AWS SDK for Java 2.x.
- DynamoDB PutItem di Go — sisi penulisan dari key yang sama.
- DynamoDB condition expressions — jaga penghapusan dengan
attribute_existsdan pemeriksaan value. - DynamoDB ConditionalCheckFailedException — apa yang dilempar conditional delete yang gagal, dan kapan itu diharapkan.
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
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.