仅当密钥已存在时才更新数据库

Updating database only if key is already present

只有当键存在时我才必须更新 dynamodb,如果键不存在我不想创建新行。

我的语法是:

PrimaryKey pk = new PrimaryKey("partitionKey", key1, "sortKey", key2);
String updateExpression = "set abc =:s";
String value = "xyz";

UpdateItemSpec updateItemSpec = new UpdateItemSpec()
                .withPrimaryKey(pk)
                .withUpdateExpression(updateExpression)
                .withValueMap(new ValueMap().withString(":s", value))
                .withConditionExpression(?);
table.updateItem(updateItemSpec);

我应该在 withConditionExpression 中提供什么。我如何在这里使用 attribute_exist()?

更新项目 API 将创建新项目(如果不存在)。您可以使用 ConditionExpression 停止创建新项目。

ConditionExpression = attribute_exists(partitionKey)

如果未找到密钥,API 将抛出 ConditionalCheckFailedException。