從亞馬遜 QLDB 中的(插入,刪除或設置)命令 - Amazon Quantum Ledger Database (Amazon QLDB)

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

從亞馬遜 QLDB 中的(插入,刪除或設置)命令

在 Amazon QLDB 中,以開頭的陳述式FROM是 PartiQL 延伸模組,可讓您插入和移除文件中的特定元素。您也可以使用這個陳述式來更新文件中的現有元素,類似於UPDATE指令。

注意

若要瞭解如何控制在特定資料表上執行此 PartiQL 命令的存取權,請參閱開始使用 Amazon QLDB 中的標準許可模式

語法

來源-插入

在現有文件中插入新元素。若要將新的頂層文件插入表格中,您必須使用INSERT

FROM table_name [ AS table_alias ] [ BY id_alias ] [ WHERE condition ] INSERT INTO element VALUE data [ AT key_name ]

從移除

移除文件中的現有元素,或移除整個頂層文件。後者在語義上與傳統DELETE語法相同。

FROM table_name [ AS table_alias ] [ BY id_alias ] [ WHERE condition ] REMOVE element

從集合

更新文件中的一或多個元素。如果一個元素不存在,它被插入。這在語義上與傳統UPDATE語法相同。

FROM table_name [ AS table_alias ] [ BY id_alias ] [ WHERE condition ] SET element = data [, element = data, ... ]

參數

table_name

包含要修改之資料的使用者資料表名稱。只有預設使用者檢視才支援 DML 陳述式。每個陳述式只能在單一資料表上執行。

在這個子句中,您也可以包含嵌套在指定資料表中的一或多個集合。如需詳細資訊,請參閱 巢狀集合

表格別名

(選擇性) 使用者定義別名,其範圍覆蓋要修改的資料表。在SETREMOVE、或WHERE子句中使用的所有資料表別名都必須在FROM子句中宣告。INSERT INTOAS關鍵字是可選的。

ID 別名

(選擇性) 使用者定義別名,繫結至結果集中每個文件的中id繼資料欄位。別名必須使用BY關鍵字在FROM子句中聲明。當您要在查詢預設使用者檢視時篩選文件 ID 時,此功能非常有用。如需詳細資訊,請參閱使用 BY 子句來查詢文件 ID

WHERE condition

要修改之文件的選取條件。

注意

如果您省略子WHERE句,則會修改資料表中的所有文件。

元素

要建立或修改的文件元素。

data

元素的新值。

密鑰名稱

要在要修改的文件中新增的索引鍵名稱。您必須指定VALUE相應的金鑰名稱。這對於在文檔中的特定位置插入新值AT是必需的。

巢狀集合

雖然您只能在單一資料表上執行 DML 陳述式,但您可以將該表格中文件內的巢狀集合指定為其他來源。您為巢狀集合宣告的每個別名都可以在WHERE子句和SETINSERT INTO、或REMOVE子句中使用。

例如,下列陳述式的FROM來源包含資料VehicleRegistration表和巢狀Owners.SecondaryOwners結構。

FROM VehicleRegistration r, @r.Owners.SecondaryOwners o WHERE r.VIN = '1N4AL11D75C109151' AND o.PersonId = 'abc123' SET o.PersonId = 'def456'

此範例會更新SecondaryOwners清單中具有的特定元素,該元素'abc123'VehicleRegistration文件中具有VIN'1N4AL11D75C109151'PersonId這個表達式可以讓你通過它的值,而不是它的索引來指定列表的元素。

傳回值

documentId— 您更新或刪除的每個文件的唯一 ID。

範例

修改文件中的元素。若該元素不存在,則會加以插入。

FROM Vehicle AS v WHERE v.VIN = '1N4AL11D75C109151' AND v.Color = 'Silver' SET v.Color = 'Shiny Gray'

在系統指派的文件id中繼資料欄位上修改或插入元素和篩選器。

FROM Vehicle AS v BY v_id WHERE v_id = 'documentId' SET v.Color = 'Shiny Gray'

修改文件中Owners.SecondaryOwners清單中第一個元素的PersonId欄位。

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' SET r.Owners.SecondaryOwners[0].PersonId = 'abc123'

移除文件中的現有元素。

FROM Person AS p WHERE p.GovId = '111-22-3333' REMOVE p.Address

從表格中移除整個文件。

FROM Person AS p WHERE p.GovId = '111-22-3333' REMOVE p

移除表VehicleRegistration格中文件內Owners.SecondaryOwners清單的一個元素。

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' REMOVE r.Owners.SecondaryOwners[0]

Vehicle表格中的文件中{'Mileage':26500}作為頂層名稱-值配對插入。

FROM Vehicle AS v WHERE v.VIN = '1N4AL11D75C109151' INSERT INTO v VALUE 26500 AT 'Mileage'

VehicleRegistration表中的文檔的Owners.SecondaryOwners字段中{'PersonId':'abc123'}作為名稱-值對追加。請注意,Owners.SecondaryOwners必須已經存在,且必須是清單資料類型,此陳述式才能有效。否則,子INSERT INTO句中需要關鍵字AT

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' }

插入{'PersonId':'abc123'}為文件內現有Owners.SecondaryOwners清單中的一個元素。

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0

將多個名稱-值對附加到文檔中的現有Owners.SecondaryOwners列表。

FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >>

以編程方式使用驅動程序

若要了解如何以程式設計方式使用 QLDB 驅動程式執行此陳述式,請參閱開始使用驅動程式中的下列教學課程: