Tous les produits
Search
Centre de documentation

Tablestore:Supprimer des données

Dernière mise à jour :Sep 17, 2026

Tablestore propose l'opération DeleteRow pour supprimer une seule ligne et l'opération BatchWriteRow pour en supprimer plusieurs.

Remarque

L'unité de base d'une table est la ligne, composée de colonnes de clé primaire et de colonnes d'attribut. Les colonnes de clé primaire sont obligatoires ; leurs noms et types doivent être identiques pour toutes les lignes. Les colonnes d'attribut sont facultatives et peuvent varier d'une ligne à l'autre. Pour plus d'informations, consultez le Modèle de table large.

Remarques relatives à l'utilisation

  • Lors de la suppression de données, le nombre et les types des colonnes de clé primaire spécifiés doivent correspondre au schéma de clé primaire de la table.

  • Les données supprimées ne peuvent pas être récupérées. Agissez avec prudence.

Supprimer une seule ligne

Appelez l'opération DeleteRow pour supprimer une seule ligne. Si la ligne spécifiée n'existe pas, l'opération n'a aucun effet.

Lorsque vous supprimez une ligne, vous pouvez utiliser une mise à jour conditionnelle afin que la suppression n'ait lieu que si certaines conditions sont remplies. Pour plus d'informations, consultez la section relative aux mises à jour conditionnelles.

Supprimer plusieurs lignes

Après avoir obtenu les clés primaires des lignes à supprimer, appelez l'opération BatchWriteRow pour les supprimer par lot.

Remarque

Pour supprimer automatiquement les données plus anciennes qu'une date donnée, utilisez la fonctionnalité TTL (Time To Live). Pour plus d'informations, consultez la section relative au TTL (Time To Live).

Lors de la suppression de lignes par lot, les options suivantes s'offrent à vous :

  • Supprimez des lignes issues de plusieurs tables dans une seule requête.

  • Utilisez une mise à jour conditionnelle pour ne supprimer les lignes que si elles satisfont à des critères spécifiques. Pour plus d'informations, consultez la section relative aux mises à jour conditionnelles.

Méthodes

Console

Utilisez la console Tablestore pour supprimer une ou plusieurs lignes.

  1. Connectez-vous à la console Tablestore.

  2. Sur la page Overview, repérez l'instance à gérer et cliquez sur Manage Instance dans la colonne Actions.

  3. Sous l'onglet Instance Details, cliquez sur le nom d'une table dans la section Tables.

  4. Sous l'onglet Query Data, sélectionnez une ou plusieurs lignes à supprimer, puis cliquez sur Delete en bas de la page.

  5. Dans la boîte de dialogue Delete, cliquez sur OK.

Tablestore CLI

Exécutez la commande delete dans l'interface CLI Tablestore pour supprimer une ligne.

L'exemple suivant supprime une ligne dont la première colonne de clé primaire est "86" et la seconde est 6771.

delete --pk '["86", 6771]'

SDKs

Utilisez le SDK Java, le SDK Go, le SDK Python, le SDK Node.js, le SDK .NET ou le SDK PHP pour supprimer des données. Les exemples ci-dessous utilisent le SDK Java.

Supprimer une seule ligne

  • Supprimer une ligne

    L'extrait de code suivant illustre la suppression d'une ligne de données dans une table :

    private static void deleteRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
    
        client.deleteRow(new DeleteRowRequest(rowDeleteChange));
    }                    
  • Supprimer une ligne sous condition

    L'extrait de code suivant montre comment supprimer une ligne de données uniquement si elle existe et si la valeur de la colonne Col0 est supérieure à 100 :

    private static void deleteRow(SyncClient client, String pkValue) {
        // Construct the primary key. 
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(pkValue));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange = new RowDeleteChange("<TABLE_NAME>", primaryKey);
    
        // Specify conditions for the DeleteRow operation. In this example, a row is deleted only when the row exists and the value of the Col0 column is greater than 100. 
        Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST);
        condition.setColumnCondition(new SingleColumnValueCondition("Col0",
                SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromLong(100)));
        rowDeleteChange.setCondition(condition);
    
        client.deleteRow(new DeleteRowRequest(rowDeleteChange));
    }                   

Supprimer plusieurs lignes

  1. Avant de supprimer des données, choisissez une méthode pour récupérer les clés primaires des lignes ciblées.

  2. Une fois les clés primaires obtenues, appelez l'opération BatchWriteRow pour supprimer les lignes. Pour plus d'informations, consultez la section Écriture de données par lot.

    L'extrait de code suivant montre comment supprimer simultanément : une ligne dont la colonne de clé primaire pk vaut pk dans une table de données, et une autre ligne dont les colonnes de clé primaire pk1 et pk2 valent respectivement pk1 et pk2 dans une seconde table de données :

    private static void batchWriteRow(SyncClient client) {    
        BatchWriteRowRequest batchWriteRowRequest = new BatchWriteRowRequest();
    
        // Construct rowDeleteChange1. 
        PrimaryKeyBuilder pk1Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        pk1Builder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString("pk"));
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange1 = new RowDeleteChange("<TABLE_NAME1>", pk1Builder.build());
        // Add rowDeleteChange1 to the code of the batch operation. 
        batchWriteRowRequest.addRowChange(rowDeleteChange1);
    
        // Construct rowDeleteChange2. 
        PrimaryKeyBuilder pk2Builder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        pk2Builder.addPrimaryKeyColumn("pk1", PrimaryKeyValue.fromString("pk1"));
        pk2Builder.addPrimaryKeyColumn("pk2", PrimaryKeyValue.fromString("pk2"));
        // Specify the name of the data table. 
        RowDeleteChange rowDeleteChange2 = new RowDeleteChange("<TABLE_NAME2>", pk2Builder.build());
        // Add rowDeleteChange2 to the code of the batch operation. 
        batchWriteRowRequest.addRowChange(rowDeleteChange2);
    
        BatchWriteRowResponse response = client.batchWriteRow(batchWriteRowRequest);
    
        System.out.println("Whether all operations are successful:" + response.isAllSucceed());
        if (!response.isAllSucceed()) {
            for (BatchWriteRowResponse.RowResult rowResult : response.getFailedRows()) {
                System.out.println("Failed rows:" + batchWriteRowRequest.getRowChange(rowResult.getTableName(), rowResult.getIndex()).getPrimaryKey());
                System.out.println("Cause of failures:" + rowResult.getError());
            }
            /**
             * You can use the createRequestForRetry method to construct another request to retry the operations on failed rows. In this example, only the retry request is constructed. 
             * We recommend that you use the custom retry policy in Tablestore SDKs as the retry method. This feature allows you to retry failed rows after batch operations are performed. After you specify the retry policy, you do not need to add retry code to call the operation. 
             */
            BatchWriteRowRequest retryRequest = batchWriteRowRequest.createRequestForRetry(response.getFailedRows());
        }
    }

Facturation

Vous êtes facturé en fonction des unités de capacité (CU) consommées par vos opérations. Selon le type d'instance, la facturation repose soit sur des CU de lecture/écriture à la demande, soit sur des CU réservés.

Remarque

Pour plus d'informations sur les types d'instances et les CU, consultez les sections Instances et débit de lecture/écriture.

Les CU de lecture et d'écriture consommés par une opération DeleteRow sont calculés comme suit :

  • CU d'écriture consommés : taille totale des colonnes de clé primaire de la ligne supprimée, divisée par 4 Ko et arrondie à l'entier supérieur.

  • CU de lecture consommés : si une vérification de condition est spécifiée (différente de IGNORE), le montant est calculé en divisant la taille totale des colonnes de clé primaire par 4 Ko et en arrondissant à l'entier supérieur.

  • Si l'opération échoue car une condition d'existence de ligne n'est pas remplie, elle consomme 1 CU d'écriture.