Todos os produtos
Search
Central de documentação

Tablestore:Excluir dados

Última atualização: Jul 03, 2026

O Tablestore oferece a operação DeleteRow para excluir uma única linha e a operação BatchWriteRow para excluir várias linhas.

Observações de uso

Não é possível restaurar dados excluídos. Proceda com cautela.

Pré-requisitos

Excluir uma única linha de dados

Chame a operação DeleteRow para excluir uma única linha de dados. Se a linha alvo não existir, a tabela de dados permanecerá inalterada.

Operação da API

// Delete a row of data from a table. 
// @param DeleteRowRequest           Encapsulate the parameters required to call the DeleteRow operation. 
// @return DeleteRowResponse         The content of the response to the DeleteRow operation. 
DeleteRow(request *DeleteRowRequest) (*DeleteRowResponse, error)                   

Parâmetros

Parâmetro

Obrigatório

Descrição

TableName

Sim

Nome da tabela de dados.

PrimaryKey

Sim

Chave primária da linha. O valor deste parâmetro consiste no nome, tipo e valor de cada coluna de chave primária.

Importante

A quantidade e os tipos das colunas de chave primária especificados devem corresponder exatamente à quantidade e aos tipos reais das colunas de chave primária na tabela.

Condition

Sim

Condição necessária para executar a operação. Configure uma condição de existência de linha ou uma condição baseada em valores de coluna. Para mais informações, consulte Atualização condicional.

Código de exemplo

O código abaixo exemplifica como excluir uma linha de uma tabela de dados quando a linha existe e o valor da coluna col2 é igual a 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
    // If you do not want the system to perform a row existence check, specify RowExistenceExpectation_IGNORE. 
    //deleteRowReq.DeleteRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
    // If the row is expected to exist, specify RowExistenceExpectation_EXPECT_EXIST. 
    deleteRowReq.DeleteRowChange.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
    // Specify a condition based on column values. In this example, specify that the condition based on column values is met if the value of the col2 column is 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")
    } 
}   

Para visualizar o código de exemplo completo, acesse DeleteRow@GitHub.

Excluir várias linhas de dados simultaneamente

  1. Selecione um método adequado aos seus requisitos de negócio para consultar as informações de chave primária dos dados a serem excluídos.

    • Para excluir dados cujos valores de chave primária estejam dentro de um intervalo específico, chame a operação GetRange para consultar os dados e obter as informações de chave primária. Para mais informações, consulte Ler dados cujos valores de chave primária estão dentro de um intervalo específico.

    • Para excluir dados que atendam a condições específicas de uma tabela com índice de pesquisa, utilize o índice para consultar os dados e obter as informações de chave primária. Para mais informações, consulte Consulta básica.

    • Para remover todos os dados de uma tabela, recomenda-se excluir a tabela e criar outra com as mesmas configurações.

      Alternativamente, chame a operação GetRange definindo a chave primária inicial como INF_MIN e a final como INF_MAX para varrer todos os dados da tabela e obter suas informações de chave primária. No entanto, essa abordagem consome muitos recursos computacionais. Proceda com cautela.

  2. Chame a operação BatchWriteRow para excluir várias linhas simultaneamente com base nas informações de chave primária. Para mais informações, consulte Gravar várias linhas de dados simultaneamente.

    O código abaixo exemplifica como excluir simultaneamente uma linha em que o valor da coluna de chave primária pk é pk de uma tabela e uma linha em que o valor da coluna de chave primária pk1 é pk1 e o valor da coluna de chave primária pk2 é pk2 de outra tabela:

    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")
        }
    }

Referências

O tempo de vida (TTL) define o período de retenção dos dados. Configure o TTL da tabela de dados para excluir automaticamente os dados expirados. Para mais informações, consulte Versões de dados e TTL.