第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

boto3 DynamoDB update_item() API 創(chuàng)建一個新項目而不是更新它

boto3 DynamoDB update_item() API 創(chuàng)建一個新項目而不是更新它

慕田峪4524236 2023-07-18 10:27:48
我正在嘗試對 DynamoDB 表進行簡單的操作。架構(gòu)非常簡單(哈希鍵)SummaryId:字符串(排序鍵)狀態(tài):字符串def put_item(dynamo_table, summary_id, status):    return dynamo_table.put_item(        Item={            'SummaryId': summary_id,            'Status': status        },        ReturnValues="ALL_OLD"    )def update_item(dynamo_table, summary_id, status):    response = dynamo_table.update_item(        Key={'SummaryId': summary_id},        AttributeUpdates={            'Status': status,        },        ReturnValues="UPDATED_OLD"    )    return responsedef initialize_dynamodb_table():    dynamodb = boto3.Session(profile_name=PROFILE_NAME,                             region_name=REGION_NAME) \        .resource('dynamodb')    return dynamodb.Table(TABLE_NAME)def main():    dynamodb_table = initialize_dynamodb_table()    # Update the above item    response = put_item(dynamodb_table, "Id1::Id2::Id4", "IN_PROGRESS")    pprint(response)    response = update_item(dynamodb_table, "Id1::Id2::Id4", "COMPLETE")    pprint(response)if __name__ == '__main__':    main()PK“Id1::Id2::Id4”的項目不存在。因此 put_item() 預(yù)計會添加此項目。我使用 update_item() api 的目的是它將項目狀態(tài)從“IN_PROGRESS”更改為“COMPLETE”。相反,update_item() API 在表中創(chuàng)建一個新項目,其中包含 PK“Id1::Id2::Id4”和 RK“COMPLETE”我如何實現(xiàn)預(yù)期的行為?提前致謝!
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經(jīng)驗 獲得超6個贊

根據(jù)您描述的架構(gòu),兩個操作(放置和更新)會產(chǎn)生兩個不同的項目,這是預(yù)期的行為。

DynamoDB 的核心概念頁面描述了分區(qū)鍵(哈希)和排序鍵(范圍),如下所示:

分區(qū)鍵 – 一種簡單的主鍵,由一個稱為分區(qū)鍵的屬性組成。

分區(qū)鍵和排序鍵 - 稱為復(fù)合主鍵,這種類型的鍵由兩個屬性組成。第一個屬性是分區(qū)鍵,第二個屬性是排序鍵。

對你來說重要的是:

在具有分區(qū)鍵和排序鍵的表中,兩個項目可能具有相同的分區(qū)鍵值。但是,這兩個項目必須具有不同的排序鍵值。

PK Id1::Id2::Id4將上述內(nèi)容應(yīng)用于您的情況,這意味著您正在使用-SK IN_PROGRESS 和另一個對象Id1::Id2::Id4-創(chuàng)建一個對象SK COMPLETE。

如果您的唯一標識符只是Id1::Id2::Id4,則更改表的架構(gòu)并僅保留分區(qū)鍵,如果您這樣做,上面的代碼將首先插入具有該 ID 和狀態(tài)的項目,然后將IN_PROGRESS同一項目更新為COMPLETE


查看完整回答
反對 回復(fù) 2023-07-18
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號