日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

刪除數據

表格存儲提供了DeleteRow接口用于刪除單行數據以及BatchWriteRow接口用于批量刪除數據。

注意事項

刪除表數據,將導致數據不可恢復,請謹慎操作。

前提條件

  • 已初始化Client。具體操作,請參見初始化OTSClient

  • 已創(chuàng)建數據表并寫入數據。

刪除單行數據

調用DeleteRow接口刪除一行數據。如果刪除的行不存在,則不會發(fā)生任何變化。

接口

// 刪除表中的一行。
// @param DeleteRowRequest           執(zhí)行DeleteRow操作所需參數的封裝。
// @return DeleteRowResponse         DeleteRow操作的響應內容。
DeleteRow(request *DeleteRowRequest) (*DeleteRowResponse, error)                   

參數

參數

是否必選

說明

TableName

數據表名稱。

PrimaryKey

行的主鍵。主鍵包括主鍵列名、主鍵類型和主鍵值。

重要

設置的主鍵個數和類型必須和數據表的主鍵個數和類型一致。

Condition

支持使用條件更新,可以設置原行的存在性條件或者原行中某列的列值條件。更多信息,請參見條件更新

示例

以下示例用于當原行存在且col2列值等于3時刪除數據表中的指定行。

func DeleteRowWithCondition(client *tablestore.TableStoreClient, tableName string) {
    deleteRowReq := new(tablestore.DeleteRowRequest)
    deleteRowReq.DeleteRowChange = new(tablestore.DeleteRowChange)
    deleteRowReq.DeleteRowChange.TableName = tableName
    deletePk := new(tablestore.PrimaryKey)
    deletePk.AddPrimaryKeyColumn("pk1", "pk1value1")
    deletePk.AddPrimaryKeyColumn("pk2", int64(2))
    deletePk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
    deleteRowReq.DeleteRowChange.PrimaryKey = deletePk
    //如果忽略行判斷條件,請設置行存在性條件為RowExistenceExpectation_IGNORE。
    //deleteRowReq.DeleteRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
    //如果期望行存在,請設置行存在性條件為RowExistenceExpectation_EXPECT_EXIST。
    deleteRowReq.DeleteRowChange.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
    //設置列條件為col2列值等于3。
    clCondition1 := tablestore.NewSingleColumnCondition("col2", tablestore.CT_EQUAL, int64(3))
    deleteRowReq.DeleteRowChange.SetColumnCondition(clCondition1)
    _, err := client.DeleteRow(deleteRowReq)
    if err != nil {
        fmt.Println("delete failed with error:", err)
    } else {
        fmt.Println("delete row finished")
    } 
}   

詳細代碼請參見DeleteRow@GitHub

批量刪除數據

  1. 根據實際情況選擇合適的方式查詢待刪除數據的主鍵信息。

    • 如果要刪除指定主鍵范圍內的數據,請調用GetRange接口,查詢指定主鍵范圍內的數據,并獲取待刪除數據的主鍵信息。具體操作,請參見范圍讀取數據

    • 如果要刪除滿足指定條件的數據,請創(chuàng)建多元索引后,使用多元索引查詢滿足指定條件的數據,并獲取待刪除數據的主鍵信息。具體操作,請參見創(chuàng)建多元索引通過SDK使用多元索引

  2. 調用BatchWriteRow接口,根據主鍵信息批量刪除數據。更多信息,請參見批量寫入數據

    以下示例用于刪除一個數據表中主鍵列pk值為"pk"的行數據以及刪除另一個數據表中第一列主鍵pk1值為"pk1"且第二列主鍵pk2值為"pk2"的行數據。

    func BatchWriteRowWithCondition(client *tablestore.TableStoreClient) {
        batchWriteReq := &tablestore.BatchWriteRowRequest{}
    
        deleteRowChange := new(tablestore.DeleteRowChange)
        deleteRowChange.TableName = "<TABLE_NAME1>"
        deletePk := new(tablestore.PrimaryKey)
        deletePk.AddPrimaryKeyColumn("pk", "pk")
        deleteRowChange.PrimaryKey = deletePk
        deleteRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
        batchWriteReq.AddRowChange(deleteRowChange)
    
        deleteRowChange2 := new(tablestore.DeleteRowChange)
        deleteRowChange2.TableName = "<TABLE_NAME2>"
        deletePk2 := new(tablestore.PrimaryKey)
        deletePk2.AddPrimaryKeyColumn("pk1", "pk1")
        deletePk2.AddPrimaryKeyColumn("pk1", "pk2")
        deleteRowChange2.PrimaryKey = deletePk2
        deleteRowChange2.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
        batchWriteReq.AddRowChange(deleteRowChange2)
    
        response, err := client.BatchWriteRow(batchWriteReq)
    	
        if err != nil {
            fmt.Println("batch request failed with:", response)
        } else {
            fmt.Println("batch write row finished")
        }
    }

相關文檔

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