步驟 4:修改分類帳中的文件 - Amazon Quantum Ledger Database (Amazon QLDB)

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

步驟 4:修改分類帳中的文件

既然您有資料需要使用,就可以開始變更 Amazon QLDB 中vehicle-registration分類帳中的文件。例如,考慮帶有 VIN 的奧迪 A51N4AL11D75C109151。這輛車最初由華盛頓州西雅圖的一名叫勞爾·劉易斯的司機擁有。

假設勞爾將汽車出售給埃弗里特,華盛頓州名為布倫特·洛根的居民。然後,布倫特和亞歷克西斯·佩納決定結婚。布倫特希望添加亞歷克西斯作為註冊的第二所有者。在此步驟中,下列資料處理語言 (DML) 陳述式示範如何在分類帳中進行適當的變更以反映這些事件。

提示

最佳作法是使用文件的系統指派id為外部索引鍵。雖然您可以定義要做為唯一識別碼的欄位 (例如,車輛的 VIN),但文件的真正唯一識別碼就是其id。此欄位包含在文件的中繼資料中,您可以在認可的檢視 (資料表的系統定義檢視) 中進行查詢。

如需 QLDB 中視圖的詳細資訊,請參閱核心概念。若要進一步了解中繼資料,請參閱查詢文件元資料

若要修改文件
  1. 開啟亞馬遜 QLDB 主控台,網址為 https://console.aws.amazon.com/qldb

  2. 在導覽窗格中,選擇 PartiQL 編輯器

  3. 選擇分vehicle-registration類帳。

    注意

    如果您使用主控台的自動載入範例資料功能設定分類帳,請跳至步驟 6。

  4. 如果您手動執行INSERT陳述式來載入範例資料,請繼續執行下列步驟。

    首先要將勞爾註冊為這輛車的車主,首先在Person桌子中找到他的系統分配id的文件。此欄位包含在文件的中繼資料中,您可以在資料表的系統定義檢視中進行查詢,稱為已提交的檢視

    在查詢編輯器視窗中,輸入下列陳述式,然後選擇 Run (執行)。

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Raul' and p.data.LastName = 'Lewis'

    前綴_ql_committed_是保留的前綴,表示您要查詢Person表的提交視圖。在此檢視中,您的資料以巢狀方式嵌套在data欄位中,而中繼資料則以巢狀方式嵌套在metadata欄位中。

  5. 現在,在UPDATE語句id中使用它來修改VehicleRegistration表格中的適當文檔。輸入下列陳述式,然後選擇 [執行]。

    UPDATE VehicleRegistration AS r SET r.Owners.PrimaryOwner.PersonId = '294jJ3YUoH1IEEm8GSabOs' --replace with your id WHERE r.VIN = '1N4AL11D75C109151'

    發出此聲明,確認您已修改此Owners欄位。

    SELECT r.Owners FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'
  6. 要將車輛的所有權轉移到埃弗里特市的布倫特,請首先使用以下語句idPerson表中找到他。

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Brent' and p.data.LastName = 'Logan'

    接下來,使id用它來更新VehicleRegistrationCity中的PrimaryOwner和。

    UPDATE VehicleRegistration AS r SET r.Owners.PrimaryOwner.PersonId = '7NmE8YLPbXc0IqesJy1rpR', --replace with your id r.City = 'Everett' WHERE r.VIN = '1N4AL11D75C109151'

    發出此聲明,確認您已修改PrimaryOwnerCity欄位。

    SELECT r.Owners.PrimaryOwner, r.City FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'
  7. 要添加亞歷克西斯作為汽車的二級所有者,找到她Person id

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Alexis' and p.data.LastName = 'Pena'

    然後,使用下SecondaryOwnersFROM-插入 DML 陳述式id將其插入到清單中。

    FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : '5Ufgdlnj06gF5CWcOIu64s' } --replace with your id

    發出本聲明以確認您已修改SecondaryOwners

    SELECT r.Owners.SecondaryOwners FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'

若要複查vehicle-registration分類帳中的這些變更,請參閱步驟 5:檢視文件的修訂歷程