如果我们使用重复的哈希键插入Dynamo DB会发生什么?

时间:2012-09-17 10:11:20

标签: hash key amazon-dynamodb

我正在尝试插入Dynamo DB。当我调用putItem函数时,如果数据库中已经存在哈希键,会发生什么? PutItemResult对象是否包含可以告诉我们是否尝试重复哈希条目的内容?我想避免运行另一个查询来检查是否有一个带有我正在使用的哈希键的条目。

2 个答案:

答案 0 :(得分:28)

如果在现有主键上插入项目,除非使用“预期值”,否则它将被覆盖。以下是官方文档的介绍:

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_PutItem.html

  

创建新项目,或用新项目(包括所有属性)替换旧项目。如果指定表中的项目已存在且具有相同的主键,则新项目将完全替换现有项目。您可以执行条件put(如果不存在具有指定主键的项目,则插入新项目),或者如果现有项目具有某些属性值,则替换现有项目。

     

注意

     

要确保新项目不替换现有项目,请使用条件置操作,将主要键属性或属性的Exists设置为false。

否则,您还可以使用UpdateItem更新预先存在的项目的字段:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

答案 1 :(得分:2)

您可以使用'withReturnValues(ReturnValue.ALL_OLD)'来返回插入前的值的PutItemResult.getAttributes中的Map。

如果PutItemResult.getAttributes返回null,则为新条目。