O Tablestore oferece a operação DeleteRow para excluir uma única linha e a operação BatchWriteRow para excluir várias linhas simultaneamente.
Não é possível restaurar dados excluídos. Proceda com cautela.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Uma tabela com dados. Para mais informações, consulte Crie tabelas de dados e Gravar dados.
Excluir uma única linha
Chame a operação DeleteRow para excluir uma única linha. Se a linha não existir, a tabela permanecerá inalterada.
Operações da API
/// <summary>
/// Delete a row of data based on the specified table name and primary key.
/// </summary>
/// <param name="request">Request instance</param>
/// <returns>Response instance</returns>
public DeleteRowResponse DeleteRow(DeleteRowRequest request);
/// <summary>
/// The asynchronous mode of DeleteRow.
/// </summary>
public Task<DeleteRowResponse> DeleteRowAsync(DeleteRowRequest request);
Parâmetros
| Parâmetro | Descrição |
|---|---|
| tableName | Nome da tabela. |
| primaryKey | Chave primária da linha a excluir. Nota
A quantidade e os tipos das colunas de chave primária devem corresponder ao esquema definido na criação da tabela. |
| condition | Condição obrigatória antes da exclusão da linha. Especifique uma condição de existência de linha ou baseada em valores de coluna. Para mais informações, consulte Executar atualizações condicionais. |
Exemplo
O exemplo a seguir exclui uma linha da tabela SampleTable. Essa linha possui duas colunas de chave primária: pk0 (inteiro) e pk1 (string). A condição RowExistenceExpectation.EXPECT_EXIST garante que a operação prossiga apenas se a linha existir.
// Define the primary key of the row to delete.
// In this example, pk0 = 0 and pk1 = "abc".
var primaryKey = new PrimaryKey();
primaryKey.Add("pk0", new ColumnValue(0));
primaryKey.Add("pk1", new ColumnValue("abc"));
try
{
// Construct the delete request.
// EXPECT_EXIST means the operation succeeds only if the row exists.
var deleteRowRequest = new DeleteRowRequest(
"SampleTable",
new Condition(RowExistenceExpectation.EXPECT_EXIST),
primaryKey);
// Execute the delete operation.
otsClient.DeleteRow(deleteRowRequest);
// No exception means the operation succeeded.
Console.WriteLine("Delete row succeeded.");
}
catch (Exception ex)
{
// An exception indicates the operation failed.
Console.WriteLine("Delete row failed, exception:{0}", ex.Message);
}
Excluir várias linhas
Para excluir várias linhas, obtenha as chaves primárias das linhas de destino e passe-as para a operação BatchWriteRow em uma única solicitação em lote.
Etapa 1: Obter chaves primárias
Escolha um dos métodos abaixo conforme o seu caso de uso:
Exclua linhas dentro de um intervalo de chave primária: Chame a operação GetRange para consultar linhas em um intervalo especificado e obter suas chaves primárias. Para mais informações, consulte Ler dados cujos valores de chave primária estão dentro de um intervalo específico.
Exclua linhas correspondentes a condições específicas: Se a tabela tiver um índice de pesquisa, use-o para consultar as linhas correspondentes e obter suas chaves primárias. Para mais informações, consulte Consulta básica.
Exclua todas as linhas: Para remover todos os dados de uma tabela, recomenda-se excluir a tabela e crie outra com a mesma configuração. Alternativamente, chame a operação GetRange definindo a chave primária inicial como INF_MIN e a final como INF_MAX para verificar todas as linhas e recuperar suas chaves primárias. Uma varredura completa da tabela consome recursos computacionais significativos. Proceda com cautela.
Etapa 2: Exclusão em lote
Chame a operação BatchWriteRow para excluir as linhas identificadas na Etapa 1. Para mais informações, consulte Gravar várias linhas de dados ao mesmo tempo.
Após a conclusão do lote, verifique na resposta se há linhas não processadas. Algumas linhas podem permanecer sem processamento caso um limite de throughput seja atingido ou ocorra um erro transitório. Repita a operação nas linhas não processadas até que todas as exclusões sejam bem-sucedidas.
Referências
O tempo de vida (TTL) defina o período de retenção dos dados. Configure o TTL em uma tabela para excluir automaticamente os dados expirados. Para mais informações, consulte Versões de dados e TTL.