首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于GSI更新Dynamo DB列

基于GSI更新Dynamo DB列
EN

Stack Overflow用户
提问于 2020-02-05 02:03:21
回答 1查看 652关注 0票数 0

我已经创建了一个表TEST,它有4列:

column1 :范围关键点

column2:排序关键字

column3: GSI

column4:法线属性

现在我想根据GSI值更新column4的值。我尝试使用以下代码,但只有在同时传递range和sort键时才有效。在我的用例中,在更新时,我将只有GSI的值,而不是范围/排序键。

代码语言:javascript
运行
复制
Map<String, AttributeValue> key = new HashMap<>();
key.put(“column1”, new AttributeValue().withS(column1Value));
key.put(“column2”, new AttributeValue().withS(column2Value));
Map<String, AttributeValue> attributeValues = new HashMap<>();

attributeValues.put(“column4”, new AttributeValue().withS(column4Value));
attributeValues.put(“column3”, new AttributeValue().withS(column3Value));

UpdateItemRequest updateItemRequest = new UpdateItemRequest()
                .withTableName(emailsTableName)
                .withKey(key)
                .withUpdateExpression(“set column4 = :column4”)
                .withConditionExpression(“column3 = :column3”)
                .withExpressionAttributeValues(attributeValues);
UpdateItemResult updateItemResult = dynamoDBClient.updateItem(updateItemRequest);

是否可以仅基于GSI更新Dynamo DB的列?

EN

Stack Overflow用户

回答已采纳

发布于 2020-02-05 02:34:45

GSI用于查询数据,因此要执行此操作,首先需要使用GSI查询数据,然后使用GSI的结果通过响应中的键了解要更新的记录。请记住,对于GSI,它可能是记录,复数。不能保证唯一性。

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60063169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档