是否可以使用单个请求中的每个属性的唯一更新和条件表达式更新单个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,
...
获取包含属性att1
和att2
的示例项。
我希望能够在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)))
我无法将这些条件语句组合成单个语句,因为如果其中一个条件语句为真,则两个值都将更新。
这些请求可以自行运行,但我似乎无法将这些请求合并到一个请求中。这可能吗?