翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon QLDB の UPDATE コマンド
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する
Amazon QLDB では、ドキュメント内にある 1 つまたは複数の要素の値を変更するには、UPDATE コマンドを使用します。要素が存在しない場合は、挿入されます。
このコマンドを使用して、FROM (INSERT、REMOVE、または SET) ステートメントと同様に、ドキュメント内の特定の要素を明示的に挿入および削除することもできます。
注記
特定のテーブルでこの PartiQL コマンドを実行するためのアクセスを制御する方法については、「Amazon QLDB の標準アクセス許可モードの開始方法」を参照してください。
構文
UPDATE-SET
ドキュメント内の 1 つ以上の要素を更新します。要素が存在しない場合は、挿入されます。これはセマンティック的には FROM-SET ステートメントと同じです。
UPDATEtable_name[ AStable_alias] [ BYid_alias] SETelement=data[,element=data, ... ] [ WHEREcondition]
UPDATE-INSERT
既存のドキュメント内で新しい要素を挿入します。新しいトップレベルドキュメントをテーブルに挿入するには、INSERT を使用する必要があります。
UPDATEtable_name[ AStable_alias] [ BYid_alias] INSERT INTOelementVALUEdata[ ATkey_name] [ WHEREcondition]
UPDATE-REMOVE
ドキュメント内の既存の要素を削除するか、トップレベルドキュメント全体を削除します。後者は、意味的には従来の DELETE 構文と同じです。
UPDATEtable_name[ AStable_alias] [ BYid_alias] REMOVEelement[ WHEREcondition]
パラメータ
- table_name
-
変更するデータを含むユーザーテーブルの名前。DML ステートメントは、デフォルトのユーザービューでのみサポートされています。各ステートメントは、単一のテーブルでのみ実行できます。
- AS
table_alias -
(オプション) 更新するテーブルに該当するユーザー定義のエイリアス。
ASキーワードはオプションです。 - BY
id_alias -
(オプション) 結果セット内の各ドキュメントの
idメタデータフィールドにバインドされる、ユーザー定義のエイリアス。このエイリアスは、BYキーワードを使用してUPDATE句で宣言する必要があります。これは、デフォルトのユーザービューへのクエリ実行中にドキュメント ID をフィルタ処理する場合に便利です。詳細については、「BY 句を使用したドキュメント ID のクエリの実行」を参照してください。 element-
作成または変更するドキュメントの要素。
データ-
要素の新しい値。
- AT
key_name -
修正されるドキュメント内に追加されるキー名。対応する
VALUEをキー名とともに指定する必要があります。これは、新しい値をドキュメント内の特定の位置ATに挿入する場合に必要です。 - WHERE
condition -
修正されるドキュメントの選択条件。
注記
WHERE 句を省略すると、テーブル内のすべてのドキュメントが修正されます。
戻り値
documentId - 更新した各ドキュメントの一意の ID。
例
ドキュメント内のフィールドを更新します。フィールドが存在しない場合は、挿入されます。
UPDATE Person AS p SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE p.GovId = '111-22-3333'
システム割当てのドキュメント id メタデータフィールドでフィルタ処理します。
UPDATE Person AS p BY pid SET p.LicenseNumber = 'HOLLOR123ZZ' WHERE pid = 'documentId'
ドキュメント全体を上書きします。
UPDATE Person AS p SET p = { 'FirstName' : 'Rosemarie', 'LastName' : 'Holloway', 'DOB' : `1977-06-18T`, 'GovId' : '111-22-3333', 'GovIdType' : 'Driver License', 'Address' : '4637 Melrose Street, Ellensburg, WA, 98926' } WHERE p.GovId = '111-22-3333'
ドキュメント内の Owners.SecondaryOwners リストで先頭要素の PersonId フィールドを修正します。
UPDATE VehicleRegistration AS r SET r.Owners.SecondaryOwners[0].PersonId = 'abc123' WHERE r.VIN = '1N4AL11D75C109151'
{'Mileage':26500} を最上位の名前と値のペアとして Vehicle テーブルのドキュメント内に挿入します。
UPDATE Vehicle AS v INSERT INTO v VALUE 26500 AT 'Mileage' WHERE v.VIN = '1N4AL11D75C109151'
VehicleRegistration テーブルのドキュメントの Owners.SecondaryOwners フィールドに、名前と値のペアとして {'PersonId':'abc123'} を追加します。このステートメントが有効になるには、Owners.SecondaryOwners が既存であり、リストデータ型であることが必要です。そうでない場合には、INSERT INTO 句内にキーワード AT が必要です。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : 'abc123' } WHERE r.VIN = '1N4AL11D75C109151'
ドキュメント内の既存の Owners.SecondaryOwners リストで先頭要素として {'PersonId':'abc123'} を挿入します。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners VALUE {'PersonId' : 'abc123'} AT 0 WHERE r.VIN = '1N4AL11D75C109151'
ドキュメント内の既存の Owners.SecondaryOwners リストに名前と値のペアを複数追加します。
UPDATE VehicleRegistration AS r INSERT INTO r.Owners.SecondaryOwners << {'PersonId' : 'abc123'}, {'PersonId' : 'def456'} >> WHERE r.VIN = '1N4AL11D75C109151'
ドキュメント内の既存の要素を削除します。
UPDATE Person AS p REMOVE p.Address WHERE p.GovId = '111-22-3333'
ドキュメント全体をテーブルから削除します。
UPDATE Person AS p REMOVE p WHERE p.GovId = '111-22-3333'
VehicleRegistration テーブルでドキュメント内の Owners.SecondaryOwners リストの先頭要素を削除します。
UPDATE VehicleRegistration AS r REMOVE r.Owners.SecondaryOwners[0] WHERE r.VIN = '1N4AL11D75C109151'
ドライバーを使用したプログラムでの実行
QLDB ドライバーを使用してこのステートメントをプログラムで実行する方法については、「ドライバーの開始方法」の以下のチュートリアルを参照してください。
-
Java: クイックスタートチュートリアル | クックブックリファレンス
-
.NET: クイックスタートチュートリアル | クックブックリファレンス
-
Go: クイックスタートチュートリアル | クックブックリファレンス
-
Node.js: クイックスタートチュートリアル | クックブックリファレンス
-
Python: クイックスタートチュートリアル | クックブックリファレンス