全部產品
Search
文件中心

Tablestore:刪除資料

更新時間:Jul 24, 2024

Table Store提供了DeleteRow介面用於刪除單行資料以及BatchWriteRow介面用於大量刪除資料。

注意事項

刪除表資料,將導致資料不可恢複,請謹慎操作。

前提條件

刪除單行資料

調用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);
}            

大量刪除資料

  1. 根據實際選擇合適的方式查詢待刪除資料的主鍵資訊。

    • 如果要刪除指定主鍵範圍內的資料,請調用GetRange介面,查詢指定主鍵範圍內的資料,並擷取待刪除資料的主鍵資訊。具體操作,請參見範圍讀取資料

    • 如果要刪除滿足指定條件的資料,請建立多元索引後,使用多元索引查詢滿足指定條件的資料,並擷取待刪除資料的主鍵資訊。具體操作,請參見建立多元索引通過SDK使用多元索引

  2. 調用BatchWriteRow介面,根據主鍵資訊大量刪除資料。更多資訊,請參見批量寫入資料

相關文檔

如果要刪除指定天數之前的資料,您可以通過為資料表配置資料生命週期的方式自動清理到期資料。具體操作,請參見資料版本和生命週期