DELETE文

DELETE文は、条件を満たす行セットを表から削除するために使用されます。

構文

delete_statement ::= 
   [variable_declaration]
   DELETE FROM table_name [[AS] table_alias] 
   WHERE expression 
   [returning_clause]

returning_clause ::= RETURNING select_list

セマンティクス

delete文は、条件を満たす行セットを表から削除するために使用されます。条件は、SELECT式と同じように動作するWHERE句に指定されます。DELETE文の結果は、RETURNING句が存在するかどうかによって異なります。RETURNING句がない場合、DELETEは削除された行数を返します。それ以外の場合、削除された行ごとに、RETURNING句の後の式がSELECT句と同じ方法で計算され、結果がアプリケーションに返されます。最後に、DELETE文は、文の残りの部分で使用される外部変数の宣言で始まる場合があります。問合せと同様に、このような宣言は必須です。

DELETE文の実行中にエラーが発生した場合は、一部の行が削除され、一部の行は削除されない可能性があります。システムでは、どの行が削除され、どの行が削除されていないかは追跡されません。これは、Oracle NoSQL Databaseでは低レイテンシ操作に重点が置かれているためです。シャード間で長時間実行される操作は、2フェーズ・コミットおよびロック・メカニズムを使用して調整されません。このような場合は、アプリケーションでDELETE文を再実行することをお薦めします。

例7-4 SQLによる行の削除

次の文は、年齢が16未満のすべてのユーザーを削除し、削除された各ユーザーの姓と名を返します。

DELETE FROM users
WHERE age < 16
RETURNING firstName, lastName;