全部产品
Search
文档中心

Tablestore:Hapus data

更新时间:Jul 02, 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 data tetap tidak berubah.

Operasi API

"""
Deskripsi: Operasi ini menghapus satu baris data. 
table_name: nama tabel. 
primary_key: primary key dari baris. 
condition: kondisi yang harus dipenuhi untuk melakukan operasi. Setelah Anda menentukan kondisi, Tablestore memeriksa apakah kondisi yang ditentukan terpenuhi sebelum Tablestore melakukan operasi. Operasi hanya dilakukan jika kondisi terpenuhi. Parameter condition adalah instance dari kelas tablestore.metadata.Condition. 
Kondisi keberadaan baris dan kondisi berdasarkan nilai kolom didukung. Jika Anda ingin menentukan kondisi keberadaan baris, Anda dapat mengatur parameter condition ke IGNORE, EXPECT_EXIST, atau EXPECT_NOT_EXIST berdasarkan kebutuhan bisnis Anda. 
Respons: jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi dan data baris yang dikembalikan, yang ditunjukkan oleh parameter return_row. 
consumed: jumlah CUs yang dikonsumsi oleh operasi. Parameter consumed adalah instance dari kelas tablestore.metadata.CapacityUnit. 
return_row: data baris yang dikembalikan. 
Contoh:
    primary_key = [('gid',1), ('uid',101)]
    condition = Condition('IGNORE')
    consumed, return_row = client.delete_row('myTable', primary_key, condition)
"""
def delete_row(self, table_name, primary_key, condition, return_type = None, transaction_id = None):

Parameter

Parameter

Diperlukan

Deskripsi

table_name

Ya

Nama tabel data.

primary_key

Ya

Primary key dari baris. Nilai parameter ini terdiri dari nama, tipe, dan nilai setiap kolom primary key.

Penting

Jumlah dan tipe kolom primary key yang Anda tentukan harus sama dengan jumlah dan tipe sebenarnya dari kolom primary key dalam tabel.

condition

Ya

Kondisi yang ingin Anda konfigurasikan untuk melakukan operasi DeleteRow. Anda dapat mengonfigurasi kondisi keberadaan baris atau kondisi berdasarkan nilai kolom. Untuk informasi lebih lanjut, lihat Pembaruan bersyarat.

return_type

Tidak

Tipe data yang dikembalikan.

transaction_id

Tidak

ID transaksi lokal. Jika Anda ingin menggunakan fitur transaksi lokal untuk menghapus data, Anda harus mengonfigurasi parameter ini.

Contoh

Berikut adalah contoh kode untuk menghapus satu baris data:

# Tentukan nama tabel data. 
table_name = '<TABLE_NAME>'
# Konstruksi primary key dari baris. 
primary_key = [('gid', 1), ('uid', '101')]
row = Row(primary_key)
condition = Condition('IGNORE')
try:
    consumed, return_row = client.delete_row(table_name, row, condition)
    print('Hapus berhasil, konsumsi %s write cu.' % consumed.write)
# Dalam banyak kasus, pengecualian klien disebabkan oleh kesalahan parameter atau pengecualian jaringan. 
except OTSClientError as e:
    print("Hapus baris gagal, http_status:%d, error_message:%s" % (e.get_http_status(), e.get_error_message()))
# Dalam banyak kasus, pengecualian server disebabkan oleh kesalahan parameter atau throttling. 
except OTSServiceError as e:
    print("Hapus baris gagal, http_status:%d, error_code:%s, error_message:%s, request_id:%s" % (
    e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))

Untuk melihat kode contoh lengkapnya, kunjungi DeleteRow@GitHub.

Hapus beberapa baris data sekaligus

  1. Pilih metode yang sesuai berdasarkan kebutuhan bisnis Anda untuk menanyakan informasi primary key dari data yang ingin dihapus.

    • Untuk menghapus data dengan nilai primary key dalam rentang tertentu, panggil operasi GetRange untuk menanyakan data dan mendapatkan informasi primary key terkait. Untuk informasi lebih lanjut, lihat Baca Data dengan Nilai Primary Key dalam Rentang Tertentu.

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

    • Untuk menghapus semua data dari tabel data, kami sarankan Anda menghapus tabel data dan membuat tabel baru dengan konfigurasi yang sama.

      Anda juga dapat memanggil operasi GetRange, atur primary key awal ke INF_MIN dan primary key akhir ke INF_MAX untuk memindai semua data dalam tabel. Dengan cara ini, Anda bisa mendapatkan informasi primary key dari semua data dalam tabel. Namun, ini mengonsumsi banyak sumber daya komputasi. Lanjutkan dengan hati-hati.

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

FAQ

1. Apa yang harus saya lakukan jika terjadi kesalahan saat saya menggunakan Tablestore SDK untuk Python V6.0.0 untuk menghapus satu baris data?

Kami sarankan Anda memperbaiki kesalahan dengan salah satu metode berikut:

  • Tingkatkan Tablestore SDK untuk Python ke versi yang lebih baru.

  • Ubah parameter yang ditentukan dalam metode yang digunakan untuk menghapus data.

    # Tentukan nama tabel data. 
    table_name = '<TABLE_NAME>'
    # Konstruksi primary key dari baris. 
    primary_key = [('gid', 1), ('uid', '101')]
    condition = Condition('IGNORE')
    try:
        consumed, return_row = client.delete_row(table_name, primary_key, condition)
        print('Hapus berhasil, konsumsi %s write cu.' % consumed.write)
    # Dalam banyak kasus, pengecualian klien disebabkan oleh kesalahan parameter atau pengecualian jaringan. 
    except OTSClientError as e:
        print("Hapus baris gagal, http_status:%d, error_message:%s" % (e.get_http_status(), e.get_error_message()))
    # Dalam banyak kasus, pengecualian server disebabkan oleh kesalahan parameter atau throttling. 
    except OTSServiceError as e:
        print("Hapus baris gagal, http_status:%d, error_code:%s, error_message:%s, request_id:%s" % (
        e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))

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.