APIの使用による単一行の削除
DeleteRequest
APIを使用し、主キーを使用して単一行を削除できます。
DeleteRequest
APIを使用して、無条件削除および条件付き削除を実行できます。
- 既存の任意の行を削除します。これがデフォルトです。
- 行が存在し、そのバージョンが特定のバージョンと一致する場合にのみ成功します。この場合は、
setMatchVersion
を使用します。
//delete row based on primary KEY
private static void delRow(NoSQLHandle handle, MapValue m1) throws Exception {
DeleteRequest delRequest = new DeleteRequest().setKey(m1).setTableName(tableName);
DeleteResult del = handle.delete(delRequest);
if (del.getSuccess()) {
System.out.println("Delete succeed");
}
else {
System.out.println("Delete failed");
}
}
/*delete a single row*/
MapValue m1= new MapValue();
m1.put("acct_Id",1);
delRow(handle,m1);
主キー値を使用し、borneo.DeleteRequest
を使用して、単一行を削除します。
#del row with a primary KEY
def del_row(handle,table_name):
request = DeleteRequest().set_key({'acct_Id': 1}).set_table_name(table_name)
result = handle.delete(request)
print('Deleted data from table: stream_acct')
# delete row based on primary key
del_row(handle,'stream_acct')
DeleteRequest
は、表から1行を削除するために使用します。行は、DeleteRequest.Key
で指定された主キーを使用して識別されます。
//delete with primary key
func delRow(client *nosqldb.Client, err error, tableName string)(){
key := &types.MapValue{}
key.Put("acct_Id",1)
delReq := &nosqldb.DeleteRequest{
TableName: tableName,
Key: key,
}
delRes, err := client.Delete(delReq)
if err != nil {
fmt.Printf("failed to delete a row: %v", err)
return
}
if delRes.Success {
fmt.Println("Delete succeeded")
}
}
delRow(client, err,tableName)
delete
メソッドを使用して、表から1行を削除します。メソッドの詳細は、NoSQLClientクラスを参照してください。
行の表名および主キーを渡す必要があります。また、以前にgetまたはputメソッドによって返された行のRowVersion
を指定することで、削除操作を条件付きにできます。
/*delete row based on primary key*/
async function delRow(handle) {
try {
/* Unconditional delete, should succeed.*/
var result = await handle.delete(TABLE_NAME, { acct_Id: 1 });
/* Expected output: delete succeeded*/
console.log('delete ' + result.success ? 'succeeded' : 'failed');
} catch(error) {
console.error(' Error: ' + error.message);
}
}
await delRow(handle);
console.log("Row deleted based on primary key");
interface StreamInt {
acct_Id: Integer;
profile_name: String;
account_expiry: TIMESTAMP;
acct_data: JSON;
}
/*delete row based on primary key*/
async function delRow(handle: NoSQLClient) {
try {
/* Unconditional delete, should succeed.*/
var result = await handle.delete<StreamInt>(TABLE_NAME, { acct_Id: 1 });
/* Expected output: delete succeeded*/
console.log('delete ' + result.success ? 'succeeded' : 'failed');
} catch(error) {
console.error(' Error: ' + error.message);
}
}
await delRow(handle);
console.log("Row deleted based on primary key");
行を削除するには、DeleteAsync
メソッドを使用します。削除する行の表名および主キーを渡します。このメソッドでは、MapValueとして主キーが取られます。フィールド名は、表の主キー列名と同じである必要があります。
DeleteAsync
およびDeleteIfVersionAsync
メソッドでは、Task<DeleteResult<RecordValue>>
が返されます。DeleteResultインスタンスには、削除操作の成功ステータスが含まれます。削除操作は、指定された主キーがある行が存在しない場合や、これが条件付き削除であり指定された行バージョンが既存の行バージョンと一致しなかった場合は失敗する可能性があります。
private static async Task delRow(NoSQLClient client){
var primaryKey = new MapValue
{
["acct_Id"] = 1
};
// Unconditional delete, should succeed.
var deleteResult = await client.DeleteAsync(TableName, primaryKey);
// Expected output: Delete succeeded.
Console.WriteLine("Delete {0}.",deleteResult.Success ? "succeeded" : "failed");
}
await delRow(client);
Console.WriteLine("Row deleted based on primary key");