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文は空の結果を返します。