[英]dynamodb conditional update item (client)
我指的是更新項目的這個樣本: 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 客戶端添加檢查值是否可用?
您可以檢查 key 屬性是否已經存在,在請求中傳遞ConditionExpression
參數(基於您所指的答案中的響應):
table.update_item(
Key={'uuid':str(uuid)},
UpdateExpression=a,
ExpressionAttributeValues=dict(v),
ConditionExpression="attribute_not_exists(uuid)"
)
僅當ConditionExpression
返回True
時才會執行您的寫入操作。 attribute_not_exists
是一個 DynamoDb function,當指定的屬性不存在時返回True
。 還有一個attribute_exists
function 來達到相反的結果。 更多關於官方文檔中的 DDB 條件函數
此外,您可以在此處查看文檔中的條件寫入 Python 示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.