2012-09-17 8 views
16

ダイナモDBに挿入しようとしています。 putItem関数を呼び出すと、ハッシュ・キーがすでにDBに存在する場合に何が起こりますか? PutItemResultオブジェクトには、重複したハッシュエントリが試行されたかどうかを示すことができますか?私は使用しているハッシュキーを持つエントリがあるかどうかを確認する別のクエリを実行しないようにしたい。重複したハッシュキーを使用してダイナモDBに挿入するとどうなりますか?

+0

特定のフレームワークを使用していますか? – yadutaf

答えて

20

既存の主キーに項目を挿入すると、「期待値」を使用しない限り上書きされます。

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

は新しいアイテムを作成し、または(すべての属性を含む)の新しいアイテムに古いアイテムを置き換えます。ここでは公式ドキュメントの導入があります。同じプライマリキーを持つ指定されたテーブルにアイテムがすでに存在する場合、新しいアイテムは既存のアイテムを完全に置き換えます。条件付プット(指定された主キーを持つアイテムが存在しない場合は新しいアイテムを挿入)を実行したり、特定の属性値を持つ既存のアイテムを置き換えたりすることができます。

新しいアイテムは、既存のアイテムを置き換え、主キー属性、または属性はfalseに設定が存在するとの条件付きプット操作を使用していないことを確認するために。

そうでない場合、あなたはまた、既存のアイテムのフィールドを更新するUpdateItemを使用することができます。http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

+0

アイテムを作成したいときは、putItemを決して使用せず、常にUpdateItemを使用するのが最も安全な方法だと思います。私の場合は、オブジェクトを作成するためにキーのみでupdateItemを使用します。すでに終了している場合は何も行いません。 –

1

あなたがのPutItemResult.getAttributesから地図を返します「withReturnValues(ReturnValue.ALL_OLD)」を使用することができます挿入の前にあった値。

PutItemResult.getAttributesがnullを返した場合、それは新しいエントリでした。

関連する問題