全部产品
Search
文档中心

Tablestore:Hapus data

更新时间:Jul 06, 2025

Tablestore menyediakan operasi DeleteRow untuk menghapus satu baris data dan operasi BatchWriteRow untuk menghapus beberapa baris data sekaligus.

Catatan penggunaan

Data yang dihapus tidak dapat dipulihkan. Lanjutkan dengan hati-hati.

Prasyarat

Hapus satu baris data

Anda dapat memanggil operasi DeleteRow untuk menghapus satu baris data. Jika baris yang ingin dihapus tidak ada, tabel tetap tidak berubah.

Operasi API

/**
 * Hapus satu baris data.
 * @api
 * @param [] $request Parameter permintaan.
 * @return [] Respons.
 * @throws OTSClientException Pengecualian yang dikembalikan ketika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi.
 * @throws OTSServerException Pengecualian yang dilemparkan ketika server Tablestore mengembalikan kesalahan.
 */
public function deleteRow(array $request);            

Parameter

Informasi permintaan

Parameter permintaan

Parameter

Deskripsi

table_name

Nama tabel data.

condition

Kondisi yang harus dipenuhi untuk melakukan operasi. Anda dapat menentukan kondisi keberadaan baris atau kondisi berdasarkan nilai kolom. Untuk informasi lebih lanjut, lihat Lakukan pembaruan bersyarat.

primary_key

Informasi kunci utama tentang baris tersebut.

Catatan

Jumlah dan tipe kolom kunci utama yang Anda tentukan harus sama dengan jumlah dan tipe sebenarnya dari kolom kunci utama dalam tabel data.

return_content

Tipe pengembalian.

Anda hanya dapat mengatur return_type ke ReturnTypeConst::CONST_PK untuk mengembalikan kunci utama. Ini terutama digunakan dalam skenario kolom kunci utama auto-increment.

Sintaks permintaan

$result = $client->deleteRow([
    'table_name' => '<string>', // Tentukan nama tabel data.
    'condition' => [
        'row_existence' => <RowExistence>,
        'column_condition' => <ColumnCondition>
    ],
    'primary_key' => [                              // Tentukan kunci utama.
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],
    'return_content' => [
        'return_type' => <ReturnType>
    ]
]);           

Informasi respons

Parameter respons

Parameter

Deskripsi

consumed

Jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi ini.

capacity_unit: throughput baca dan tulis yang dikonsumsi.

  • read: throughput baca.

  • write: throughput tulis.

primary_key

Nilai kunci utama, yang sama dengan yang ada di permintaan.

Catatan

Jika Anda mengatur return_type ke ReturnTypeConst::CONST_PK, nilai kunci utama akan dikembalikan. Parameter ini digunakan oleh fitur kolom kunci utama auto-increment.

attribute_columns

Nilai kolom atribut, yang sama dengan yang ada di permintaan. Saat ini, nilai parameter ini kosong.

Sintaks respons

[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key' => [
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],
    'attribute_columns' => []
]            

Contoh

Hapus satu baris data

Berikut adalah contoh kode untuk menghapus satu baris data dari tabel:

$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE,
    'primary_key' => [ // Tentukan kunci utama.
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'return_content' => [
        'return_type' => ReturnTypeConst::CONST_PK     // Tentukan return_type untuk mengembalikan nilai kunci utama saat kolom kunci utama auto-increment ditentukan.
    ]
];
$response = $otsClient->deleteRow($request);            

Tentukan kondisi untuk menghapus satu baris data

Berikut adalah contoh kode untuk menghapus satu baris data ketika nilai kolom Col0 dalam baris tersebut lebih besar dari 100:

$request = [
    'table_name' => 'MyTable',
    'condition' => [
        'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST, // Konfigurasikan parameter kondisi untuk menghapus baris ketika baris yang ditentukan ada.
        'column_filter' => [          // Hapus baris ketika nilai kolom Col0 lebih besar dari 100.
            'column_name' => 'Col0',
            'value' => 100,
            'comparator' => ComparatorTypeConst::CONST_GREATER_THAN
        ],
    ],
    'primary_key' => [ // Tentukan kunci utama.
        ['PK0', 123],
        ['PK1', 'abc']
    ]
];
$response = $otsClient->deleteRow ($request);           

Hapus beberapa baris data sekaligus

  1. Pilih metode untuk mendapatkan informasi kunci utama tentang data yang ingin dihapus.

    • Untuk menghapus data dengan nilai kunci utama dalam rentang tertentu, panggil operasi GetRange untuk menanyakan data dan mendapatkan informasi kunci utamanya. Untuk informasi lebih lanjut, lihat Baca Data dengan Nilai Kunci Utama dalam Rentang Tertentu.

    • Untuk menghapus data yang memenuhi kondisi tertentu dari tabel dengan indeks pencarian, gunakan indeks pencarian untuk menanyakan data dan mendapatkan informasi kunci utamanya. Untuk informasi lebih lanjut, lihat Kueri Dasar.

    • Untuk menghapus semua data dari tabel, disarankan untuk menghapus tabel dan membuat tabel baru dengan konfigurasi yang sama.

      Anda juga dapat memanggil operasi GetRange, atur kunci utama awal ke INF_MIN dan kunci utama akhir ke INF_MAX untuk memindai semua data dalam tabel. Dengan cara ini, Anda dapat memperoleh informasi kunci utama tentang semua data. Namun, ini memerlukan banyak sumber daya komputasi. Lanjutkan dengan hati-hati.

  2. Panggil operasi BatchWriteRow untuk menghapus beberapa baris data sekaligus berdasarkan informasi kunci utamanya. Untuk informasi lebih lanjut, lihat Tulis Beberapa Baris Data Sekaligus.

Referensi

Time to live (TTL) menentukan periode retensi data. Anda dapat mengonfigurasi TTL untuk tabel data agar data yang kedaluwarsa dihapus secara otomatis. Untuk informasi lebih lanjut, lihat Versi Data dan TTL.