

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

# ステップ 4: 台帳のドキュメントを変更する
<a name="getting-started-step-4"></a>

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

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

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

**ヒント**  
ベストプラクティスとして、外部キーには、ドキュメントにシステムによって割り当てられた `id` を使用します。一意の識別子 (車両の VIN など) 用にフィールドを定義することはできますが、実際のドキュメントの一意の識別子はその `id` です。このフィールドはドキュメントのメタデータに含まれており、コミット済みビュー (*テーブルのシステム定義のビュー*) でクエリを実行できます。  
QLDB におけるビューの詳細については、「[重要な概念](ledger-structure.md)」を参照してください。メタデータの詳細については、「[ドキュメントのメタデータのクエリの実行](working.metadata.md)」を参照してください。

**ドキュメントに変更を加えるには**

1. Amazon QLDB コンソール ([https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb)) を開きます。

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

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

1. サンプルデータをロードする `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` フィールドにネストされています。

1. 次に、この `id` を `UPDATE` ステートメントで使用して、`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'
   ```

1. 車両の所有権をエバレットに住む Brent に譲渡するには、まず次のステートメントを使用して、Brent の `id` を `Person` テーブルで検索します。

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

   次に、この `id` を使用して、`VehicleRegistration` テーブルの `PrimaryOwner` と `City` を更新します。

   ```
   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'
   ```

1. 車の共同所有者として 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](ql-reference.from.md) 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: ドキュメントのリビジョン履歴を表示する](getting-started-step-5.md)」を参照してください。