表格存儲提供了DeleteRow接口用于刪除單行數據以及BatchWriteRow接口用于批量刪除數據。
注意事項
刪除表數據,將導致數據不可恢復,請謹慎操作。
前提條件
已初始化Client,具體操作,請參見初始化OTSClient。
刪除單行數據
調用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);
}
批量刪除數據
根據實際選擇合適的方式查詢待刪除數據的主鍵信息。
如果要刪除指定主鍵范圍內的數據,請調用GetRange接口,查詢指定主鍵范圍內的數據,并獲取待刪除數據的主鍵信息。具體操作,請參見范圍讀取數據。
如果要刪除滿足指定條件的數據,請創建多元索引后,使用多元索引查詢滿足指定條件的數據,并獲取待刪除數據的主鍵信息。具體操作,請參見創建多元索引和通過SDK使用多元索引。
調用BatchWriteRow接口,根據主鍵信息批量刪除數據。更多信息,請參見批量寫入數據。
相關文檔
如果要刪除指定天數之前的數據,您可以通過為數據表配置數據生命周期的方式自動清理過期數據。具體操作,請參見數據版本和生命周期。
文檔內容是否對您有幫助?