1
我有一個DynamoDB表,其中一個屬性作爲主鍵ItemName
。AWS DynamDB條件項刪除
添加到表中的每個屬性都使用當前UTC時間戳命名。
我想刪除最後一個屬性,它會檢查是否存在除ItemName
之外的其他屬性,並且如果不存在我想要刪除的項目,則進行條件刪除。
有無論如何這樣做嗎?
謝謝。
我有一個DynamoDB表,其中一個屬性作爲主鍵ItemName
。AWS DynamDB條件項刪除
添加到表中的每個屬性都使用當前UTC時間戳命名。
我想刪除最後一個屬性,它會檢查是否存在除ItemName
之外的其他屬性,並且如果不存在我想要刪除的項目,則進行條件刪除。
有無論如何這樣做嗎?
謝謝。
據我所知,沒有辦法告訴DynamoDB自動爲你做這件事。如果您使用UpdateItem方法將屬性添加到尚不存在的項目,但它們將不會在所有屬性(密鑰除外)都自動刪除項目時,它們將爲您創建一個新項目。
執行此操作的最佳方法是使用UpdateItem方法的ReturnValues屬性。將其設置爲ALL_NEW
以獲取返回給你的行的當前狀態。然後,您的代碼可以檢查該項目是否有其他屬性,並根據需要調用DeleteItem方法。
編輯: 此外,您可以將ConditionExpression添加到DeleteItem
方法調用,以刪除它之前檢查屬性的存在。
謝謝@coffeeplease,我所做的是刪除顯然不好的屬性後得到的項目。問題是,它仍然不能解決我的問題,因爲在完成檢查新屬性之後,直到刪除Item,另一個屬性可以在其他地方創建,我將直接刪除它。對不明白我創建項目/刪除屬性的方式。無論如何,謝謝 – Tal87
即使你能夠刪除該項目,如果有另一個屬性進來,它會使用UpdateItem來添加該屬性?如果是這樣的話,它最終會重新創建該項目。那是你要的嗎?我很好奇你的情況,如果你能分享任何額外的細節... – readyornot
如果我能夠刪除該項目,只有然後使用UpdateItem添加屬性,那麼我將沒有問題的項目娛樂。但如果在刪除它之前創建了新屬性,我不想刪除該項目。我正在使用一個表來管理鎖定機制。每個帳戶可以有多個讀鎖,並且只有一個寫鎖(單獨) – Tal87