第 4 步:修改分类账中的文档 - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 4 步:修改分类账中的文档

重要

终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

既然您有了要处理的数据,就可以开始在 Amazon 中更改vehicle-registration账本中的文档QLDB了。例如,考虑搭载的奥迪 A5。VIN 1N4AL11D75C109151这辆车最初属于华盛顿州西雅图的一位名叫 Raul Lewis 的司机。

假设 Raul 把车卖给了华盛顿州埃弗雷特的一位名叫 Brent Logan 的居民。然后,Brent和 Alexis Pena 决定结婚。Brent 想把 Alexis 列为第二车主。在此步骤中,以下数据操作语言 (DML) 语句演示了如何在账本中进行适当的更改以反映这些事件。

提示

最佳做法是使用系统分配的 id 文档作为外键。虽然您可以定义作为唯一标识符的字段(例如车辆VIN),但文档的真正唯一标识符是其唯一标识符id。字段都包含在文档元数据中,您可以在提交视图(系统定义的表格视图)中对其进行查询。

有关中视图的更多信息QLDB,请参阅核心概念。了解有关元数据的更多信息,请参阅 查询文档元数据

修改文档
  1. 打开亚马逊QLDB控制台,网址为 https://console.aws.amazon.com/qldb

  2. 在导航窗格中,选择 PartiQL 编辑器

  3. 选择 vehicle-registration 分类账。

    注意

    如果您使用控制台的自动加载样本数据功能设置分类账,请跳至步骤 6。

  4. 如果您手动运行 INSERT 语句来加载示例数据,请继续执行这些步骤。

    要最初将 Raul 注册为这辆车的车主,首先要在 Person表中找到他由系统分配的文件 id。字段都包含在文档元数据中,您可以在提交视图(系统定义的表格视图)中对其进行查询。

    在查询编辑器窗口中输入以下语句,然后选择 运行

    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. 要将车辆的所有权转让给埃弗里特市的 Brent,请先使用以下语句从 Person 表中找到他的 id

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

    接下来,使用这个 id 来更新 VehicleRegistration 表中的 PrimaryOwnerCity

    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. 要将 Alexis 添加为汽车的次要车主,请找到她的 Person id

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

    然后,使用以下 FROM-INSERT DML 语句id将其插入到SecondaryOwners列表中。

    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 步:查看文档修订历史记录