UPDATE文
UPDATE文を使用して、表の行を更新できます。
構文
update_statement ::=
UPDATE table_name
[[AS] table_alias
]
update_clause
("," update_clause)*
WHERE expression
[returning_clause]
returning_clause ::= RETURNING select_list
セマンティクス
更新はサーバーで行われ、読取り-変更-書込みのサイクルが排除されます。つまり、クライアントで行全体をフェッチし、ターゲット・フィールドの新しい値を(現在の値に基づいて)計算してから、行全体をサーバーに返送する必要がありません。
構文的および意味的には、Oracle NoSQL DatabaseのUPDATE文は標準SQLのUPDATE文と似ていますが、Oracle NoSQL Databaseの豊富なデータ・モデルを処理する拡張機能を備えています。前述の構文について次に説明します。
- 最初に、更新対象の表を名前およびオプションの表の別名で指定します(別名は、トップレベルの列のみにアクセスする場合にのみ省略できます。それ以外の場合は、読取り専用問合せの場合と同様に、ネストしたフィールドにアクセスするパス式の最初のステップとして、別名が必要です)。
- 次に、1つ以上のUPDATE句を指定します。
WHERE
句では、どの行を更新するかを指定します。現在の実装では、単一行の更新のみが許可されるため、WHERE
句で完全な主キーを指定する必要があります。- 最後に、オプションの
RETURNING
句を指定します。指定しない場合、UPDATE文の結果は更新された行の数になります。現在の実装では、この数は1または0です。WHERE
句の条件を満たす行がなかった場合、またはUPDATE句で指定された更新の結果、WHERE
句で選択された単一行について何も処理が行われなかった場合は、ゼロが返されます。それ例外の場合、RETURNING
句(ある場合)はSELECT
句と同じように機能します。つまり、"*"を指定でき、その場合は更新された完全な行が返されます。または、返される必要があるものを指定する式のリストを指定できます。さらに、WHERE
条件を満たす行がない場合、UPDATE文は空の結果を返します。