本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
UPDATEAmazon 中的命令 QLDB
重要
支援結束通知:現有客戶將能夠使用 Amazon,QLDB直到 2025 年 7 月 31 日終止支援為止。有關更多詳細信息,請參閱將 Amazon QLDB 分類帳遷移到 Amazon Aurora 郵政. SQL
在 Amazon 中QLDB,使用UPDATE
命令修改文檔中一個或多個元素的值。如果一個元素不存在,它被插入。
您也可以使用這個命令,在文件中明確插入和移除特定元素,類似FROM(INSERTREMOVE、或SET)陳述式。
注意
若要瞭解如何控制在特定資料表上執行此 PartiQL 命令的存取權,請參閱開始使用 Amazon 的標準許可模式 QLDB。
語法
UPDATE-SET
更新文件中的一或多個元素。如果一個元素不存在,它被插入。這在語義上與 FROM- 語SET句相同。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] SETelement
=data
[,element
=data
, ... ] [ WHEREcondition
]
UPDATE-INSERT
在現有文件中插入新元素。若要將新的頂層文件插入表格中,您必須使用INSERT。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] INSERT INTOelement
VALUEdata
[ ATkey_name
] [ WHEREcondition
]
UPDATE-REMOVE
移除文件中的現有元素,或移除整個頂層文件。後者在語義上與傳統DELETE語法相同。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] REMOVEelement
[ WHEREcondition
]
參數
table_name
-
包含要修改之資料的使用者表格名稱。DML只有預設使用者檢視中才支援陳述式。每個陳述式只能在單一資料表上執行。
- AS
table_alias
-
(選擇性) 使用者定義的別名,其範圍覆蓋要更新的資料表。
AS
關鍵字是可選的。 - BY
id_alias
-
(選擇性) 使用者定義別名,繫結至結果集中每個文件的中
id
繼資料欄位。別名必須使用BY
關鍵字在UPDATE
子句中聲明。當您要在查詢預設使用者檢視時篩選文件 ID 時,此功能非常有用。如需詳細資訊,請參閱 使用 BY 子句來查詢文件 ID。 element
-
要建立或修改的文件元素。
data
-
元素的新值。
- AT
key_name
-
要在要修改的文件中新增的索引鍵名稱。您必須指定
VALUE
相應的金鑰名稱。這對於在文檔中的特定位置插入新值AT
是必需的。 - WHERE
condition
-
要修改的文件的選擇標準。
注意
如果您省略子WHERE
句,則表格中的所有文件都會被修改。
傳回值
documentId
— 您更新的每個文件的唯一 ID。
範例
更新文件中的欄位。如果欄位不存在,則會插入該欄位。
UPDATE Person AS p SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE p.GovId = '111-22-3333'
篩選系統指派的文件id
中繼資料欄位。
UPDATE Person AS p BY pid SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE pid = '
documentId
'
覆寫整個文件。
UPDATE Person AS p SET p = { 'FirstName' : 'Rosemarie', 'LastName' : 'Holloway', 'DOB' : `1977-06-18T`, 'GovId' : '111-22-3333', 'GovIdType' : 'Driver License', 'Address' : '4637 Melrose Street, Ellensburg, WA, 98926' } WHERE p.GovId = '111-22-3333'
修改文件中Owners.SecondaryOwners
清單中第一個元素的PersonId
欄位。
UPDATE VehicleRegistration AS r SET r.Owners.SecondaryOwners[0].PersonId = 'abc123' WHERE r.VIN = '1N4AL11D75C109151'
在表Vehicle
格中的文件中{'Mileage':26500}
作為頂層名稱-值配對插入。
UPDATE Vehicle AS v INSERT INTO v VALUE 26500 AT 'Mileage' WHERE v.VIN = '1N4AL11D75C109151'
在表中的文檔的Owners.SecondaryOwners
字段中{'PersonId':'abc123'}
作為名稱-值對追加。VehicleRegistration
請注意,Owners.SecondaryOwners
必須已經存在,且必須是清單資料類型,此陳述式才能有效。否則,子INSERT INTO
句中需要關鍵字AT
。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' } WHERE r.VIN = '1N4AL11D75C109151'
插入{'PersonId':'abc123'}
為文件內現有Owners.SecondaryOwners
清單中的第一個元素。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0 WHERE r.VIN = '1N4AL11D75C109151'
將多個名稱-值對附加到文檔中的現有Owners.SecondaryOwners
列表。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >> WHERE r.VIN = '1N4AL11D75C109151'
移除文件中的現有元素。
UPDATE Person AS p REMOVE p.Address WHERE p.GovId = '111-22-3333'
從表格中移除整個文件。
UPDATE Person AS p REMOVE p WHERE p.GovId = '111-22-3333'
移除表VehicleRegistration
格中文件內Owners.SecondaryOwners
清單的第一個元素。
UPDATE VehicleRegistration AS r REMOVE r.Owners.SecondaryOwners[0] WHERE r.VIN = '1N4AL11D75C109151'
以編程方式使用驅動程序
若要了解如何以程式設計方式使用QLDB驅動程式執行此陳述式,請參閱開始使用驅動程式中的下列教學課程: