翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
UPDATE Amazon の コマンド QLDB
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL
Amazon ではQLDB、 UPDATE
コマンドを使用して、ドキュメント内の 1 つ以上の要素の値を変更します。要素が存在しない場合は、挿入されます。
このコマンドを使用して、FROM (INSERT、REMOVE、または SET) ステートメントと同様に、ドキュメント内の特定の要素を明示的に挿入および削除することもできます。
注記
特定のテーブルでこの PartiQL コマンドを実行するためのアクセスを制御する方法については、「Amazon での標準アクセス許可モードの開始方法 QLDB」を参照してください。
構文
UPDATE-SET
ドキュメント内の 1 つ以上の要素を更新します。要素が存在しない場合は、挿入されます。これは意味的に FROM-SET ステートメントと同じです。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] SETelement
=data
[,element
=data
, ... ] [ WHEREcondition
]
UPDATE-INSERT
既存のドキュメント内で新しい要素を挿入します。新しいトップレベルドキュメントをテーブルに挿入するには、INSERT を使用する必要があります。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] INSERT INTOelement
VALUEdata
[ ATkey_name
] [ WHEREcondition
]
UPDATE-REMOVE
ドキュメント内の既存の要素を削除するか、トップレベルドキュメント全体を削除します。後者は、意味的には従来の DELETE 構文と同じです。
UPDATE
table_name
[ AStable_alias
] [ BYid_alias
] REMOVEelement
[ WHEREcondition
]
パラメータ
table_name
-
変更するデータを含むユーザーテーブルの名前。DML ステートメントは、デフォルトのユーザービュー でのみサポートされます。各ステートメントは、単一のテーブルでのみ実行できます。
- AS
table_alias
-
(オプション) 更新するテーブルに該当するユーザー定義のエイリアス。
AS
キーワードはオプションです。 - BY
id_alias
-
(オプション) 結果セット内の各ドキュメントの
id
メタデータフィールドにバインドされる、ユーザー定義のエイリアス。このエイリアスは、BY
キーワードを使用してUPDATE
句で宣言する必要があります。これは、デフォルトのユーザービューへのクエリ実行中にドキュメント ID をフィルタ処理する場合に便利です。詳細については、「BY 句を使用したドキュメント ID のクエリの実行」を参照してください。 element
-
作成または変更するドキュメントの要素。
data
-
要素の新しい値。
- 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: クイックスタートチュートリアル | クックブックリファレンス