SQLコマンドの使用によるデータの削除
DELETE文は、条件を満たす行セットを表から削除するために使用されます。
条件は、SELECT式と同じように動作するWHERE句に指定されます。DELETE文の結果は、RETURNING句が存在するかどうかによって異なります。RETURNING句がない場合、DELETEは削除された行数を返します。それ以外の場合、削除された行ごとに、RETURNING句の後の式がSELECT句と同じ方法で計算され、結果がアプリケーションに返されます。
例1: 単純なWHERE句を使用して、表からデータを削除します。
指定したフルネームを持つユーザーに対応するデータを削除します。
DELETE FROM BaggageInfo
WHERE fullName = "Bonnie Williams"
例2: RETURNING句を使用して、表からデータを削除します。
RETURNING句は、削除する行の詳細をフェッチします。次の例では、削除されるチケット番号に対応するフルネームおよび確認番号をフェッチしています。
DELETE FROM BaggageInfo
WHERE ticketNo = 1762392196147
RETURNING fullName,confNo
出力:
{"fullName":"Birgit Naquin","confNo":"QD1L0T"}
ノート:
DELETE文の実行中にエラーが発生した場合は、一部の行が削除され、一部の行は削除されない可能性があります。システムでは、どの行が削除され、どの行が削除されていないかは追跡されません。これは、Oracle NoSQL Databaseでは低レイテンシ操作に重点が置かれているためです。シャードをまたいで長時間実行される操作は、2フェーズ・コミットおよびロック・メカニズムを使用して調整されません。このような場合は、アプリケーションでDELETE文を再実行することをお薦めします。例3: 姓に基づいて
stream_acct
表からデータを削除します。DELETE FROM stream_acct acct1
WHERE acct1.acct_data.firstName="Adelaide"
AND acct1.acct_data.lastName="Willard"