Tüm Ürünler
Search
Belge Merkezi

Tablestore:Veri silme

Son Güncelleme:Oct 02, 2026

Tablestore, tek bir satırı silmek için DeleteRow işlemini ve birden çok satırı silmek için BatchWriteRow işlemini sunar.

Not

Bir tablonun temel birimi satırdır; satırlar birincil anahtar sütunlarından ve öznitelik sütunlarından oluşur. Birincil anahtar sütunları zorunludur ve adları ile türleri tüm satırlarda aynı olmalıdır. Öznitelik sütunları isteğe bağlıdır ve her satırda farklı öznitelikler bulunabilir. Daha fazla bilgi için bkz. Geniş tablo modeli.

Kullanım notları

  • Verileri silerken belirttiğiniz birincil anahtar sütunlarının sayısı ve türleri, tablonun birincil anahtar şemasıyla eşleşmelidir.

  • Silinen veriler kurtarılamaz. Lütfen dikkatli olun.

Tek bir satır silme

Tek bir satırı silmek için DeleteRow işlemini çağırın. Belirtilen satır mevcut değilse işlem herhangi bir etki yaratmaz.

Bir satırı silerken, yalnızca belirli koşulları karşılaması durumunda satırı silmek için koşullu güncelleme kullanabilirsiniz. Daha fazla bilgi için bkz. koşullu güncelleme.

Birden çok satır silme

Silinecek satırların birincil anahtarlarını aldıktan sonra, bunları toplu olarak silmek için BatchWriteRow işlemini çağırın.

Not

Belirli bir zamandan daha eski verileri otomatik olarak silmek için yaşam süresi (TTL) özelliğini kullanabilirsiniz. Daha fazla bilgi için bkz. yaşam süresi (TTL).

Satırları toplu olarak silerken aşağıdaki seçeneklere sahipsiniz:

  • Tek bir istekte birden çok tablodan satır silebilirsiniz.

  • Yalnızca belirli koşulları karşılayan satırları silmek için koşullu güncelleme kullanabilirsiniz. Daha fazla bilgi için bkz. koşullu güncelleme.

Yöntemler

Konsol

Tek bir satırı veya birden çok satırı silmek için Tablestore konsolunu kullanabilirsiniz.

  1. Tablestore konsoluna giriş yapın.

  2. Overview sayfasında, yönetmek istediğiniz örneği bulun ve Actions sütunundaki Manage Instance seçeneğine tıklayın.

  3. Instance Details sekmesinde, Tables bölümünde bir tablo adına tıklayın.

  4. Query Data sekmesinde silinecek bir veya daha fazla satırı seçin ve ardından sayfanın alt kısmındaki Delete seçeneğine tıklayın.

  5. Delete iletişim kutusunda OK seçeneğine tıklayın.

Tablestore CLI

Bir satırı silmek için Tablestore CLI'da delete komutunu çalıştırabilirsiniz.

Aşağıdaki örnekte, ilk birincil anahtar sütunu "86" ve ikincisi 6771 olan bir satır silinmektedir.

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

SDK'lar

Verileri silmek için Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK veya PHP SDK kullanabilirsiniz. Aşağıdaki örneklerde Java SDK kullanılmaktadır.

Tek bir satır silme

  • Satır silme

    Aşağıdaki örnek kod, bir tablodan nasıl veri satırı silineceğini göstermektedir:

    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));
    }                    
  • Koşul kullanarak satır silme

    Aşağıdaki örnek kod, satır mevcut olduğunda ve satırdaki Col0 sütununun değeri 100'den büyük olduğunda bir veri tablosundan nasıl veri satırı silineceğini göstermektedir:

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

Birden çok satır silme

  1. Verileri silmeden önce, silmek istediğiniz satırların birincil anahtarlarını sorgulamak için bir yöntem seçin.

    • Belirli bir birincil anahtar aralığındaki satırları silmek için, birincil anahtarlarını almak üzere GetRange işlemini kullanın. Daha fazla bilgi için bkz. Veri okuma.

    • Belirli kriterleri karşılayan satırları silmek için bir arama dizini oluşturun. Ardından, verileri sorgulamak ve silinecek satırların birincil anahtarlarını almak için arama dizinini kullanın. Daha fazla bilgi için bkz. Arama dizini oluşturma ve SDK kullanarak arama diziniyle veri sorgulama.

  2. Birincil anahtarlara sahip olduktan sonra, satırları silmek için BatchWriteRow işlemini çağırın. Daha fazla bilgi için bkz. Verileri toplu yazma.

    Aşağıdaki örnek kod, pk birincil anahtar sütununun değeri pk olan bir veri satırını bir veri tablosundan ve pk1 birincil anahtar sütununun değeri pk1 ile pk2 birincil anahtar sütununun değeri pk2 olan bir veri satırını başka bir veri tablosundan aynı anda nasıl sileceğinizi göstermektedir:

    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());
        }
    }

Faturalama

İşlemlerinizin tükettiği Kapasite Birimleri (CU) için ücretlendirilirsiniz. Örnek türüne bağlı olarak faturalama, ya talebe göre ya da ayrılmış okuma/yazma CU'larına dayanır.

Not

Örnek türleri ve CU'lar hakkında daha fazla bilgi için bkz. Örnekler ve okuma/yazma aktarım hızı.

Bir DeleteRow işleminin tükettiği okuma CU'ları ve yazma CU'ları aşağıdaki gibi hesaplanır:

  • Tüketilen yazma CU'ları: Silinen satırın birincil anahtar sütunlarının toplam boyutu, 4 KB'a bölünür ve en yakın tam sayıya yukarı yuvarlanır.

  • Tüketilen okuma CU'ları: Bir koşul kontrolü belirtilmişse (IGNORE olarak ayarlanmamışsa), miktar birincil anahtar sütunlarının toplam boyutu olarak hesaplanır, 4 KB'a bölünür ve en yakın tam sayıya yukarı yuvarlanır.

  • İşlem, bir satır varlık koşulu karşılanmadığı için başarısız olursa 1 yazma CU tüketir.