ステップ 4: 台帳のドキュメントを変更する - Amazon Quantum Ledger Database (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 4: 台帳のドキュメントを変更する

操作するデータを用意できたところで、Amazon QLDB で vehicle-registration 台帳のドキュメントに変更を加えることができます。ここでは、VIN が 1N4AL11D75C109151 の Audi A5 を例にします。この車の最初の所有者は、ワシントン州シアトルの Raul Lewis という名前のドライバーです。

Raul がワシントン州エバレットに住む Brent Logan にこの車を売るとします。その後、Brent と Alexis Pena が結婚することになりました。Brent は共同所有者として車両登録に Alexis を追加したいと考えています。このステップの以下のデータ操作言語 (DML) ステートメントは、台帳に適切な変更を行ってこれらのイベントを反映させる方法を示します。

ヒント

ベストプラクティスとして、外部キーには、ドキュメントにシステムによって割り当てられた id を使用します。一意の識別子 (車両の VIN など) 用にフィールドを定義することはできますが、実際のドキュメントの一意の識別子はその id です。このフィールドはドキュメントのメタデータに含まれており、コミット済みビュー (テーブルのシステム定義のビュー) でクエリを実行できます。

QLDB におけるビューの詳細については、「重要な概念」を参照してください。メタデータの詳細については、「ドキュメントのメタデータのクエリの実行」を参照してください。

ドキュメントに変更を加えるには
  1. Amazon QLDB コンソール (https://console.aws.amazon.com/qldb) を開きます。

  2. ナビゲーションペイン内で [PartiQL エディタ] を選択します。

  3. vehicle-registration 台帳を選択します。

    注記

    コンソールの自動 [Load sample data] (サンプルデータをロード) 機能を使用して台帳を設定する場合は、ステップ 6 に進みます。

  4. サンプルデータをロードする INSERT ステートメントを手動で実行した場合は、次のステップに進みます。

    この車両の所有者として最初に Raul を登録するには、まず 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. 次に、この idUPDATE ステートメントで使用して、VehicleRegistration テーブル内の該当するドキュメントを変更します。次のステートメントを入力し、[Run (実行)] を選択します。

    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 に譲渡するには、まず次のステートメントを使用して、Brent の idPerson テーブルで検索します。

    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'

    このステートメントを発行して、PrimaryOwner フィールドと City フィールドを変更したことを確認します。

    SELECT r.Owners.PrimaryOwner, r.City FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'
  7. 車の共同所有者として Alexis を追加するには、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 ステートメントでこの idSecondaryOwners リストに挿入します。

    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: ドキュメントのリビジョン履歴を表示する」を参照してください。