FROM Amazon の (INSERT、REMOVE、または SET) コマンド QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

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

FROM Amazon の (INSERT、REMOVE、または SET) コマンド QLDB

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

Amazon ではQLDB、 で始まるステートメントは、ドキュメント内の特定の要素を挿入および削除できる PartiQL 拡張機能FROMです。このステートメントを使用して、UPDATE コマンドと同様に、ドキュメント内の既存の要素を更新することもできます。

注記

特定のテーブルでこの PartiQL コマンドを実行するためのアクセスを制御する方法については、「Amazon での標準アクセス許可モードの開始方法 QLDB」を参照してください。

構文

FROM-INSERT

既存のドキュメント内で新しい要素を挿入します。新しいトップレベルドキュメントをテーブルに挿入するには、INSERT を使用する必要があります。

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

FROM-REMOVE

ドキュメント内の既存の要素を削除するか、トップレベルドキュメント全体を削除します。後者は、意味的には従来の DELETE 構文と同じです。

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

FROM-SET

ドキュメント内の 1 つ以上の要素を更新します。要素が存在しない場合は、挿入されます。これは、意味的には従来の UPDATE 構文と同じです。

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

パラメータ

table_name

変更するデータを含むユーザーテーブルの名前。DML ステートメントは、デフォルトのユーザービュー でのみサポートされます。各ステートメントは、単一のテーブルでのみ実行できます。

この句には、指定したテーブルにネストされている 1 つ以上のコレクションも含めることができます。詳細については、「ネストされているコレクション」を参照してください。

AS table_alias

(オプション) 変更するテーブルに該当するユーザー定義のエイリアス。SET 句、REMOVE 句、INSERT INTO 句、または WHERE 句で使用されるソースエイリアスは、いずれも FROM 句で宣言する必要があります。AS キーワードはオプションです。

BY id_alias

(オプション) 結果セット内の各ドキュメントの id メタデータフィールドにバインドされる、ユーザー定義のエイリアス。このエイリアスは、BY キーワードを使用して FROM 句で宣言する必要があります。これは、デフォルトのユーザービューへのクエリ実行中にドキュメント ID をフィルタ処理する場合に便利です。詳細については、「BY 句を使用したドキュメント ID のクエリの実行」を参照してください。

WHERE condition

修正されるドキュメントの選択条件。

注記

WHERE 句を省略すると、テーブル内のすべてのドキュメントが修正されます。

element

作成または変更するドキュメントの要素。

data

要素の新しい値。

AT key_name

修正されるドキュメント内に追加されるキー名。対応する VALUE をキー名とともに指定する必要があります。これは、新しい値をドキュメント内の特定の位置 AT に挿入する場合に必要です。

ネストされているコレクション

DML ステートメントは 1 つのテーブルでのみ実行できますが、そのテーブル内のドキュメント内でネストされたコレクションを追加ソースとして指定できます。ネストされたコレクションに対して宣言した各エイリアスは、WHERE 句で使用できます。さらに、SETINSERT INTOREMOVE のいずれかの句で使用できます。

たとえば、次のステートメントの FROM ソースには、VehicleRegistration テーブルおよびネストされている Owners.SecondaryOwners 構造の両方が含まれます。

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

次の例では、VIN'1N4AL11D75C109151' である VehicleRegistration ドキュメント内で、SecondaryOwners リスト内の PersonId'abc123' である特定の要素を更新します。この式を使用すると、リストの要素を、インデックスではなく値で指定できます。

戻り値

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]

{'Mileage':26500} を最上位の名前と値のペアとして Vehicle テーブルのドキュメント内に挿入します。

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

ドキュメント内の既存の Owners.SecondaryOwners リストで先頭要素として {'PersonId':'abc123'} を挿入します。

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 ドライバーを使用してこのステートメントをプログラムで実行する方法については、「ドライバーの開始方法」の以下のチュートリアルを参照してください。