删除表中的数据 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

删除表中的数据

在 SQL 中,DELETE 语句从表检索一个或多个行。Amazon DynamoDB 使用 DeleteItem 操作一次删除一个项目。

使用 SQL 删除表中的数据

在 SQL 中,可使用 DELETE 语句删除一个或多个行。WHERE 子句确定要修改的行。以下是示例。

DELETE FROM Music WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';

您可以修改 WHERE 子句以删除多个行。例如,您可以删除某个特定艺术家的所有歌曲,如以下示例所示。

DELETE FROM Music WHERE Artist = 'The Acme Band'
注意

如果您省略 WHERE 子句,则数据库会尝试从表中删除所有行。

在 DynamoDB 中删除表中的数据

在 DynamoDB 中,您可以使用 DynamoDB API 或 PartiQL(一种与 SQL 兼容的查询语言)删除单个项目。(如果要修改多个项目,则必须使用多个操作。)

DynamoDB API

借助 DynamoDB API,您可以使用 DeleteItem 操作删除表中的数据(一次删除一个项目)。您必须指定项目的主键值。

{ TableName: "Music", Key: { Artist: "The Acme Band", SongTitle: "Look Out, World" } }
注意

除了 DeleteItem 之外,Amazon DynamoDB 还支持使用 BatchWriteItem 操作同时删除多个项目。

DeleteItem 支持条件写入,在此情况下,操作仅在特定 ConditionExpression 的计算结果为 true 时成功完成。例如,以下DeleteItem操作仅在项目具有RecordLabel属性时才会将其删除。

{ TableName: "Music", Key: { Artist: "The Acme Band", SongTitle: "Look Out, World" }, ConditionExpression: "attribute_exists(RecordLabel)" }
注意

有关使用 DeleteItem 的代码示例,请参阅 DynamoDB 和 Amazon SDK 入门

PartiQL for DynamoDB

使用 PartiQL,您可以使用 Delete 语句通过 ExecuteStatement 操作删除表中的数据(一次删除一个项目)。您必须指定项目的主键值。

此表的主键由 Art istSongTitle. 您必须为这些属性指定值。

DELETE FROM Music WHERE Artist = 'Acme Band' AND SongTitle = 'PartiQL Rocks'

您还可以指定操作的其他选项。以下 DELETE 操作只有在项目超过 11 个奖项时才会删除该项目。

DELETE FROM Music WHERE Artist = 'Acme Band' AND SongTitle = 'PartiQL Rocks' AND Awards > 11
注意

有关使用 DELETEExecuteStatement 的代码示例,请参阅 PartiQL for DynamoDB Delete 语句