翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] INSERT INTOelement
VALUEdata
[ ATkey_name
]
FROM-REMOVE
ドキュメント内の既存の要素を削除するか、トップレベルドキュメント全体を削除します。後者は、意味的には従来の DELETE 構文と同じです。
FROM
table_name
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] REMOVEelement
FROM-SET
ドキュメント内の 1 つ以上の要素を更新します。要素が存在しない場合は、挿入されます。これは、意味的には従来の UPDATE 構文と同じです。
FROM
table_name
[ AStable_alias
] [ BYid_alias
] [ WHEREcondition
] SETelement
=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
句で使用できます。さらに、SET
、INSERT
INTO
、REMOVE
のいずれかの句で使用できます。
たとえば、次のステートメントの 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 ドライバーを使用してこのステートメントをプログラムで実行する方法については、「ドライバーの開始方法」の以下のチュートリアルを参照してください。
-
Java: クイックスタートチュートリアル | クックブックリファレンス
-
.NET: クイックスタートチュートリアル | クックブックリファレンス
-
Go: クイックスタートチュートリアル | クックブックリファレンス
-
Node.js: クイックスタートチュートリアル | クックブックリファレンス
-
Python: クイックスタートチュートリアル | クックブックリファレンス