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