PartiQL 更新 的语句 DynamoDB - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

PartiQL 更新 的语句 DynamoDB

使用 UPDATE 语句可修改 Amazon DynamoDB 表的项目中一个或多个属性的值。

注意

您一次只能更新一个项目;您不能发出单个更新多个项目的 DynamoDB PartiQL 语句。有关更新多个项目的信息,请参阅使用适用于 PartiQL 的 DynamoDB 执行事务使用适用于 PartiQL 的 DynamoDB 运行批量操作

Syntax

UPDATE table [SET | REMOVE] path [= data] […] WHERE condition [RETURNING returnvalues] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *

Parameters

table

(必需) 包含要修改的数据的表。

path

(必需) 要创建或修改的属性名称或文档路径。

data

(必需) 属性值或操作的结果。

用于 SET 的受支持操作:

  • LIST_APPEND:向列表类型添加一个值。

  • SET_ADD:向数字或字符串集添加一个值。

  • SET_DELETE:从数字或字符串集中删除值。

condition

(必填)要修改的项目的选择条件。此条件必须解析为单个主键值。

returnvalues

(可选)如果您希望获取项目属性在更新前后显示的信息,请使用 returnvalues。有效值为:

  • ALL OLD * - 返回项目的所有属性,如更新操作前所示。

  • MODIFIED OLD * - 仅返回更新操作前更新的属性。

  • ALL NEW * - 返回项目的所有属性,与更新操作后的情况类似。

  • MODIFIED NEW * – 仅返回更新后的属性,因为它们显示在 UpdateItem 操作之后。

返回值

除非指定了 returnvalues 参数,否则该语句不会返回值。

注意

如果 UPDATE 语句的 WHERE 子句的计算结果对于 DynamoDB 表中的任何项目都不为 true,则返回 ConditionalCheckFailedException

Examples

更新现有项目中的属性值。如果该属性不存在,则会创建它。

以下查询通过添加类型编号的属性 (Music) 和类型映射的属性 (AwardsWon) 来更新 AwardDetail 表中的项目。

UPDATE Music SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

以下查询通过将追加到列表 Music 来更新 AwardDetail.Grammys 表中的项目。

UPDATE Music SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016]) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

以下查询通过从列表 Music 中删除来更新 AwardDetail.Grammys 表中的项目。

UPDATE Music REMOVE AwardDetail.Grammys[2] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

以下查询通过将 Music 添加到映射 BillBoard 来更新 AwardDetail 表中的项目。

UPDATE Music SET AwardDetail.BillBoard=[2020] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

以下查询通过添加字符串集属性 Music 来更新 BandMembers 表中的项目。

UPDATE Music SET BandMembers =<<'member1', 'member2'>> WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

以下查询通过将 Music 添加到字符串集 newbandmember 来更新 BandMembers 表中的一个项目。

UPDATE Music SET BandMembers =set_add(BandMembers, <<'newbandmember'>>) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'