具有唯一更新和条件表达式的DynamoDB批处理更新属性

时间:2017-09-08 04:51:11

标签: java amazon-dynamodb

是否可以使用单个请求中的每个属性的唯一更新和条件表达式更新单个DynamoDB项目中的多个属性?与SQL语句如何使用CASE语句

类似
UPDATE some_table
  SET column1 = CASE WHEN column1 == 0 THEN newValue1 ELSE column1,
  SET column2 = CASE WHEN column2 == 0 THEN newValue2 ELSE column2,
...

获取包含属性att1att2的示例项。

我希望能够在att1更新属性att1 < value.att1,其中value只是新数据。同时,我想在相同条件(att2)下更新att2 < value.att2,但此更新不取决于att1的值或有条件。

val value = newAttributeData

new UpdateItemRequest()
  .withUpdateExpression("SET att1 = :att1Update")
  .withConditionExpression("att1 < :att1Update")
  .withExpressionAttributeValues(
    Map(":att1Update" -> new AttributeValue(value.att1)))

此外,我还要更新以下内容:

new UpdateItemRequest()
  .withUpdateExpression("SET att2 = :att2Update")
  .withConditionExpression("att2 < :att2Update")
  .withExpressionAttributeValues(
    Map(":att2Update" -> new AttributeValue(value.att2)))

我无法将这些条件语句组合成单个语句,因为如果其中一个条件语句为真,则两个值都将更新。

这些请求可以自行运行,但我似乎无法将这些请求合并到一个请求中。这可能吗?

0 个答案:

没有答案