首页 > 解决方案 > java删除dynamodb中的所有项目

问题描述

我试图在 dynamodb 中删除我的表中的所有项目,但它不起作用。

    try {
        ScanRequest scanRequest = new ScanRequest().withTableName(table);
        ScanResult scanResult = null;

        do {
            if (Check.nonNull(scanResult)) {
                scanRequest.setExclusiveStartKey(scanResult.getLastEvaluatedKey());
            }

            scanResult = client.scan(scanRequest);

            scanResult.getItems().forEach((Item) -> {
                String n1 = Item.get("n1").toString();
                String n2 = tem.get("n2").toString();
                DeleteItemSpec spec = new DeleteItemSpec().withPrimaryKey("n1", n1, "n2", n2);
                dynamodb.getTable(table).deleteItem(spec);
            });
        } while (Check.nonNull(scanResult.getLastEvaluatedKey()));
    } catch (Exception e) {
        throw new BadRequestException(e);
    }

n1 是我的主分区键

n2 是我的主排序键

标签: javaamazon-dynamodb

解决方案


从 DynamoDB 中删除所有项目的最佳方法是删除表并重新创建它。

否则,将使用大量读取容量和写入容量单位,这将花费您。

删除并重新创建表是最好的方法。


推荐阅读