dynamodb条件付き更新アイテム(クライアント)
Dec 09 2020
私は更新アイテムのこのサンプルを参照しています: https://stackoverflow.com/a/62030403/13967222。
for key, val in body.items():
update_expression.append(f" {key} = :{key},")
update_values[f":{key}"] = val
return "".join(update_expression)[:-1], update_values
私は同じことを達成しようとしていますが、dynamodbクライアントを使用しています。
dynamodbクライアントを使用して値が利用可能かどうかのチェックを追加する方法はありますか?
回答
1 FireNero Dec 09 2020 at 17:58
ConditionExpression
そのようなリクエストにパラメータを渡して、キー属性がすでに存在するかどうかを確認できます(参照している回答の応答に基づいて):
table.update_item(
Key={'uuid':str(uuid)},
UpdateExpression=a,
ExpressionAttributeValues=dict(v),
ConditionExpression="attribute_not_exists(uuid)"
)
書き込みは、がConditionExpression
返された場合にのみ実行されますTrue
。指定された属性が存在しない場合にattribute_not_exists
返さTrue
れるDynamoDb関数です。attribute_exists
逆の結果を出す機能もあります。公式ドキュメントのDDB条件関数の詳細
また、ここのドキュメントで条件付き書き込みのPythonの例を確認できます