選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

修改資料表中的資料時,關聯式 (SQL) 資料庫和 DynamoDB 之間的差異

焦點模式
修改資料表中的資料時,關聯式 (SQL) 資料庫和 DynamoDB 之間的差異 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SQL 語言會提供 UPDATE 陳述式來修改資料。Amazon DynamoDB 使用 UpdateItem 操作來完成類似的任務。

修改 SQL 資料表中的資料

在 SQL 中,您會使用 UPDATE 陳述式修改一或多列。SET 子句可為一或多個資料行指定新的值,WHERE 子句則可決定要修改的資料列。以下是範例。

UPDATE Music SET RecordLabel = 'Global Records' WHERE Artist = 'No One You Know' AND SongTitle = 'Call Me Today';

若沒有任何資料列符合 WHERE 子句,UPDATE 陳述式便沒有任何效果。

修改 DynamoDB 中資料表的資料

在 DynamoDB 中,您可以使用 DynamoDB API 或 PartiQL (SQL 相容查詢語言) 修改單一項目。如果您想要修改多個項目,則必須使用多個操作。

DynamoDB API

若使用 DynamoDB API,您可以使用 UpdateItem 操作修改單一項目。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ExpressionAttributeValues: { ":label": "Global Records" } }

您必須指定要修改之項目的 Key 屬性,以及 UpdateExpression 以指定屬性值。UpdateItem 的運作方式類似「upsert」操作。如果項目存在資料表中,則會進行更新,如果不存在,則會新增 (插入) 新項目。

UpdateItem 支援條件式寫入,即只有在特定 ConditionExpression 評估為 true 時,操作才會成功。例如,若歌曲的價格未大於或等於 2.00,下列 UpdateItem 操作就不會執行更新。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ConditionExpression: "Price >= :p", ExpressionAttributeValues: { ":label": "Global Records", ":p": 2.00 } }

UpdateItem 也支援原子計數器,或可增加或減少的 Number 類型屬性。原子計數器與 SQL 資料庫中的順序產生器、身分欄位或自動遞增欄位在許多方面都非常類似。

下列是 UpdateItem 操作的範例,它會初始化新屬性 (Plays) 來追蹤歌曲的播放次數。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = :val", ExpressionAttributeValues: { ":val": 0 }, ReturnValues: "UPDATED_NEW" }

ReturnValues 參數會設為 UPDATED_NEW,這會傳回任何更新屬性的新值。在此案例中,它會傳回 0 (零)。

只要有人播放此歌曲,我們就可以使用下列 UpdateItem 操作將 Plays 增加 1。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" }
PartiQL for DynamoDB

借助 PartiQL,您可以使用 PartiQL Update 陳述式,使用 ExecuteStatement 操作修改資料表中的項目。

此資料表的主索引鍵包含 ArtistSongTitle。您必須指定這些屬性的值。

UPDATE Music SET RecordLabel ='Global Records' WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

您也可以一次修改多個欄位,如以下範例所示。

UPDATE Music SET RecordLabel = 'Global Records' SET AwardsWon = 10 WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'

Update 也支援原子計數器,或可增加或減少的 Number 類型屬性。原子計數器與 SQL 資料庫中的順序產生器、身分欄位或自動遞增欄位在許多方面都非常類似。

以下為 Update 陳述式的示例,用以初始化新的屬性 (Plays) 來追蹤歌曲的播放次數。

UPDATE Music SET Plays = 0 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

當某人播放此歌曲時,我們即可使用下列 Update 陳述式將 Plays 增加 1。

UPDATE Music SET Plays = Plays + 1 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
注意

如需使用 UpdateExecuteStatement 的程式碼範例,請參閱 適用於 DynamoDB 的 PartiQL Update 陳述式

若使用 DynamoDB API,您可以使用 UpdateItem 操作修改單一項目。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ExpressionAttributeValues: { ":label": "Global Records" } }

您必須指定要修改之項目的 Key 屬性,以及 UpdateExpression 以指定屬性值。UpdateItem 的運作方式類似「upsert」操作。如果項目存在資料表中,則會進行更新,如果不存在,則會新增 (插入) 新項目。

UpdateItem 支援條件式寫入,即只有在特定 ConditionExpression 評估為 true 時,操作才會成功。例如,若歌曲的價格未大於或等於 2.00,下列 UpdateItem 操作就不會執行更新。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ConditionExpression: "Price >= :p", ExpressionAttributeValues: { ":label": "Global Records", ":p": 2.00 } }

UpdateItem 也支援原子計數器,或可增加或減少的 Number 類型屬性。原子計數器與 SQL 資料庫中的順序產生器、身分欄位或自動遞增欄位在許多方面都非常類似。

下列是 UpdateItem 操作的範例,它會初始化新屬性 (Plays) 來追蹤歌曲的播放次數。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = :val", ExpressionAttributeValues: { ":val": 0 }, ReturnValues: "UPDATED_NEW" }

ReturnValues 參數會設為 UPDATED_NEW,這會傳回任何更新屬性的新值。在此案例中,它會傳回 0 (零)。

只要有人播放此歌曲,我們就可以使用下列 UpdateItem 操作將 Plays 增加 1。

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" }
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。