Java(AWS SDK v2)에서의 DynamoDB DeleteItem
DeleteItem은 전체 기본 키로 단일 항목을 제거합니다. AWS SDK for Java 2.x에서는 DeleteItemRequest를 빌드하고 DynamoDbClient에서 deleteItem을 호출하며, ReturnValue.ALL_OLD를 사용하면 응답이 실제로 무언가 삭제되었는지 알려줍니다.
Code
import java.util.HashMap;
import java.util.Map;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemRequest;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemResponse;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.ReturnValue;
public class DeleteItemExample {
public static void main(String[] args) {
try (DynamoDbClient ddb = DynamoDbClient.builder()
.region(Region.US_EAST_1)
.build()) {
Map<String, AttributeValue> key = new HashMap<>();
key.put("Artist", AttributeValue.builder().s("Arturo Sandoval").build());
key.put("SongTitle", AttributeValue.builder().s("Cubano Chant").build());
DeleteItemRequest request = DeleteItemRequest.builder()
.tableName("Music")
.key(key)
.returnValues(ReturnValue.ALL_OLD)
.build();
DeleteItemResponse response = ddb.deleteItem(request);
if (response.attributes().isEmpty()) {
System.out.println("No item with that key existed");
} else {
System.out.println("Deleted: " + response.attributes());
}
} catch (DynamoDbException e) {
System.err.println(e.getMessage());
}
}
}Explanation
key— 모든 기본 키 속성을 포함해야 합니다. 단순 키는 파티션 키만, 복합 키는 파티션 키 및 정렬 키를 포함해야 합니다.- Delete는 멱등적 — 존재하지 않는 키를 삭제해도 여전히 성공입니다(오류 없음).
returnValues(ReturnValue.ALL_OLD)를 사용하면 삭제된 항목이response.attributes()로 반환됩니다. 빈 맵은 아무것도 없었다는 뜻입니다. DeleteItem의ReturnValues는NONE(기본값)과ALL_OLD만 지원 —ALL_NEW/UPDATED_*옵션은UpdateItem에 속합니다.- 조건부 삭제 —
conditionExpression(예: 항목이 없을 때 실패시키는attribute_exists(Artist), 또는 값을 가드하는Awards = :zero)을 추가하세요. 실패한 조건은ConditionalCheckFailedException을 던집니다. DeleteItem은 호출당 한 항목을 제거합니다. "전부 삭제" API는 없습니다 — 테이블을 비우려면Scan으로 키를 순회해 삭제를 배치하거나, 테이블을 삭제하고 다시 생성하세요.
Do it visually
조건으로 삭제를 가드하고 계신가요? DynamoDB Expression Builder는 ConditionExpression과 이름/값 맵을 대신 조립합니다.
GUI에서 항목을 삭제하려면 — 행 선택, 확인, 완료, 생성된 코드는 클릭 한 번 거리에 — DynoTable을 다운로드하세요.
Related examples
- DynamoDB DeleteItem in Go — AWS SDK for Go v2를 사용한 동일한 삭제.
- DynamoDB PutItem in Java — 동일한 키의 쓰기 쪽.
- DynamoDB condition expressions —
attribute_exists와 값 확인으로 삭제를 가드하기. - DynamoDB ConditionalCheckFailedException — 실패한 조건부 삭제가 발생시키는 것, 그리고 그것이 예상되는 경우.
References
- DeleteItem — Amazon DynamoDB API Reference
- Use DeleteItem with an AWS SDK or CLI — Amazon DynamoDB Developer Guide
- DynamoDbClient — AWS SDK for Java 2.x API Reference
- DeleteItemRequest — AWS SDK for Java 2.x API Reference
- Condition expressions — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above.