APIの使用による複数行の削除

MultiDeleteRequest APIを使用し、NoSQL表から複数の行を削除できます。

MultiDeleteRequestを使用すると、アトミック操作で表から複数の行を削除できます。使用されるキーは一部ですが、それには、シャード・キーに含まれるすべてのフィールドが含まれている必要があります。範囲を指定して、特定の範囲のキーを削除できます。この操作では単一操作で変更できるデータの最大量を超える可能性があるため、操作を続行するために継続キーを使用できます。

表の主キーが<YYYYMM, timestamp>であり、そのシャード・キーがYYYYMMである場合、同じ月にヒットしたすべてのレコードは、同じシャード内にあります。MultiDeleteRequestクラスを使用して、特定の月について、ある範囲のタイムスタンプ値を削除できます。

様々なクラスおよびメソッドの詳細は、Oracle NoSQL Java SDK APIリファレンスを参照してください。

こちらにあるサンプルの中からフル・コードMultiDataOps.javaをダウンロードします。
//Delete multiple rows from the table
private static void delMulRows(NoSQLHandle handle,int pinval) throws Exception {
   MapValue key = new MapValue().put("pin", 1234567);
   MultiDeleteRequest multiDelRequest = new MultiDeleteRequest()
          .setKey(key)
          .setTableName(tableName);

   MultiDeleteResult mRes = handle.multiDelete(multiDelRequest);
   System.out.println("MultiDelete result = " + mRes);
}

/*delete multiple rows using shard key*/
delMulRows(handle,1234567);

borneo.MultiDeleteRequestクラスを使用すると、1つのアトミック操作で複数の削除を実行できます。

様々なクラスおよびメソッドの詳細は、Oracle NoSQL Python SDK APIリファレンスを参照してください。

こちらにあるサンプルの中からフル・コードMultiDataOps.pyをダウンロードします。
#delete multiple rows
def multirow_delete(handle,table_name,pinval):
   request = MultiDeleteRequest().set_table_name(table_name).set_key({'pin': pinval})
   result = handle.multi_delete(request)
)
/*delete multiple rows using shard key*/
multirow_delete(handle,'examplesAddress',1234567)

MultiDeleteメソッドを使用すると、1つのアトミック操作で表から複数の行を削除できます。

様々なクラスおよびメソッドの詳細は、Oracle NoSQL Go SDK APIリファレンスを参照してください。

こちらにあるサンプルの中からフル・コードMultiDataOps.goをダウンロードします。
//delete multiple rows
func delMulRows(client *nosqldb.Client, err error, tableName string,pinval int)(){
   shardKey := &types.MapValue{}
   shardKey.Put("pin", pinval)
   multiDelReq := &nosqldb.MultiDeleteRequest{
		TableName: tableName,
		Key:       shardKey,
   }
   multiDelRes, err := client.MultiDelete(multiDelReq)
   if err != nil {
      fmt.Printf("failed to delete multiple rows: %v", err)
      return
   }
   fmt.Printf("MultiDelete result=%v\n", multiDelRes)
}
/*delete multiple rows using shard key*/
delMulRows(client, err,tableName,1234567)

deleteRangeメソッドを使用して、単一のアトミック操作で、シャード・キーが同一の複数の行を削除できます。

JavaScript: こちらにあるサンプルの中からフル・コードMultiDataOps.jsをダウンロードします。
//deletes multiple rows
async function mulRowDel(handle,pinval){
   try {
      /* Unconditional delete, should succeed.*/
      var result = await handle.deleteRange(TABLE_NAME, { pin: pinval });
      /* Expected output: delete succeeded*/
      console.log('delete ' + result.success ? 'succeeded' : 'failed');
   } catch(error) {
      console.error('  Error: ' + error.message);
   }
}
/*delete multiple rows using shard key*/
await mulRowDel(handle,1234567);
TypeScript: こちらにあるサンプルの中からフル・コードMultiDataOps.tsをダウンロードします。
interface StreamInt {
   acct_Id: Integer;
   profile_name: String;
   account_expiry: TIMESTAMP;
   acct_data: JSON;
}
//deletes multiple rows
async function mulRowDel(handle: NoSQLClient,pinVal: Integer){
   try {
      /* Unconditional delete, should succeed.*/
      var result = await handle.deleteRange<StreamInt>(TABLE_NAME, { pin: pinval });
      /* Expected output: delete succeeded*/
      console.log('delete ' + result.success ? 'succeeded' : 'failed');
   } catch(error) {
      console.error('  Error: ' + error.message);
   }
}
/*delete multiple rows using shard key*/
await mulRowDel(handle,1234567);

DeleteRangeAsyncメソッドを使用して、単一のアトミック操作で同じシャード・キーを持つ複数の行を削除できます。

こちらにあるサンプルの中からフル・コードMultiDataOps.cs をダウンロードします。
//delete multiple rows
private static async Task mulDelRows(NoSQLClient client,int pinval){
   var parKey = new MapValue {["pin"] = pinval};
   var options = new DeleteRangeOptions();
   do
   {
      var result = await client.DeleteRangeAsync(TableName,parKey,options);
      Console.WriteLine($"Deleted {result.DeletedCount} row(s)");
      options.ContinuationKey = result.ContinuationKey;
   } while(options.ContinuationKey != null);
}
/*delete multiple rows using shard key*/
await mulDelRows(client,1234567);