表格存储提供了DeleteRow接口用于删除单行数据以及BatchWriteRow接口用于批量删除数据。
重要 删除表数据,将导致数据不可恢复,请谨慎操作。
前提条件
- 已初始化Client,详情请参见初始化。
- 已创建数据表并写入数据。
删除单行数据
调用DeleteRow接口删除一行数据。如果删除的行不存在,则不会发生任何变化。
接口
/// <summary>
/// 指定数据表名称和行的主键,删除一行数据。
/// </summary>
/// <param name="request">请求实例</param>
/// <returns>响应实例</returns>
public DeleteRowResponse DeleteRow(DeleteRowRequest request);
/// <summary>
/// DeleteRow的异步形式。
/// </summary>
public Task<DeleteRowResponse> DeleteRowAsync(DeleteRowRequest request);
参数
参数 | 说明 |
---|---|
tableName | 数据表名称。 |
primaryKey | 行的主键。 说明 设置的主键个数和类型必须和数据表的主键个数和类型一致。 |
condition | 使用条件更新,可以设置原行的存在性条件或者原行中某列的列值条件。更多信息,请参见条件更新。 |
示例
删除一行数据。
//要删除的行的PK列分别为0和"abc"。
var primaryKey = new PrimaryKey();
primaryKey.Add("pk0", new ColumnValue(0));
primaryKey.Add("pk1", new ColumnValue("abc"));
try
{
//构造请求,RowExistenceExpectation.EXPECT_EXIST表示只有此行存在时才执行删除。
var deleteRowRequest = new DeleteRowRequest("SampleTable", new Condition(RowExistenceExpectation.EXPECT_EXIST), primaryKey);
//调用DeleteRow接口删除数据。
otsClient.DeleteRow(deleteRowRequest);
//如果没有抛出异常,则说明执行成功。
Console.Writeline("Delete table succeeded.");
}
catch (Exception ex)
{
//如果抛出异常,则说明执行失败,处理异常。
Console.WriteLine("Delete table failed, exception:{0}", ex.Message);
}
详细代码请参见DeleteRow@GitHub。