关系(SQL)数据库和 DynamoDB 在从表中删除数据方面的差异
在 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'
在 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)"
}
- PartiQL for DynamoDB
-
使用 PartiQL,您可以使用 Delete
语句通过 ExecuteStatement
操作删除表中的数据(一次删除一个项目)。您必须指定项目的主键值。
此表的主键包含 Artist 和 SongTitle。您必须为这些属性指定值。
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