CLI命令 - 删除数据

DynamoDB DeleteItem API 用于删除一个项目。

DynamoDB中的删除操作总是对单行操作。没有单个命令可以删除整个表中的所有行。

我们在上一节添加到Reply表中一条Item:

aws dynamodb get-item \
    --table-name Reply \
    --key '{
        "Id" : {"S": "Amazon DynamoDB#DynamoDB Thread 2"},
        "ReplyDateTime" : {"S": "2021-04-27T17:47:30Z"}
    }'

让我们删除这个Item。使用delete-item命令时,我们需要加上完整的主键,就像使用get-item一样:

aws dynamodb delete-item \
    --table-name Reply \
    --key '{
        "Id" : {"S": "Amazon DynamoDB#DynamoDB Thread 2"},
        "ReplyDateTime" : {"S": "2021-04-27T17:47:30Z"}
    }'

多次删除同一个项目是安全的。我们可以多次运行上述命令,它不会报告错误; 如果键不存在,DeleteItem API仍会返回成功。

现在我们已经从Reply表中删除了该项目,我们还需要减少相关的Forum表中Messages计数。

aws dynamodb update-item \
    --table-name Forum \
    --key '{
        "Name" : {"S": "Amazon DynamoDB"}
    }' \
    --update-expression "SET Messages = :newMessages" \
    --condition-expression "Messages = :oldMessages" \
    --expression-attribute-values '{
        ":oldMessages" : {"N": "5"},
        ":newMessages" : {"N": "4"}
    }' \
    --return-consumed-capacity TOTAL