0

我的团队在我们的 DynamoDB 中添加了一个新字段,我需要为当前不包含该字段的所有条目添加一个整数。

我试过在这里使用更新示例,但是我得到了一个ValidationException: Where clause does not contain a mandatory equality on all key attributes,因为我的WHERE子句不包含主键。但是,我不需要按主键过滤,因为我只关心没有新列值的条目。

我正在运行的查询是 PartiQL 是:

UPDATE <table-name>
SET <new-field>=0
WHERE NOT <new-field>=0;

4

1 回答 1

2

PartiQLUPDATE WHERE子句必须标识单个 DyanmoDB 项目。正如文档所说:

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

这在实践中意味着您 (1)scan为所有目标记录和 (2) 然后为每条记录发出UPDATE声明,最好是一起批处理。

于 2021-11-17T09:46:13.097 回答