All Products
Search
Document Center

Lindorm:HAPUS

Last Updated:Feb 12, 2026

Anda dapat menggunakan sintaks DELETE untuk menghapus data dari tabel lebar atau menghapus deret waktu yang memenuhi kondisi tertentu dari tabel deret waktu.

Mesin dan versi yang berlaku

  • Sintaks DELETE berlaku untuk LindormTable dan LindormTSDB.

  • LindormTSDB versi 3.4.19 dan yang lebih baru mendukung penghapusan berbasis timeline. Untuk melihat atau melakukan upgrade versi Anda saat ini, lihat Panduan Versi dan pembaruan versi minor.

  • Sintaks DELETE didukung oleh semua versi LindormTable.

Sintaks

delete_statement ::=  DELETE FROM table_identifier
                      WHERE where_clause
where_clause     ::=  relation ( AND|OR relation )*
relation         ::=  column_name operator term
                      | '(' column_name ( ',' column_name )* ')' operator tuple_literal
operator         ::=  '=' | '<' | '>' | '<=' | '>=' | '!=' | IN | IS NOT?  NULL | LIKE

Catatan penggunaan

Penting

Sebelum menggunakan pernyataan DELETE untuk menghapus data, perhatikan hal-hal berikut.

Untuk LindormTable:

  • Pada versi LindormTable sebelum 2.8.2.26, pernyataan DELETE hanya mendukung penghapusan satu baris. Artinya, kondisi filter harus menentukan semua kolom kunci primer untuk menghapus satu baris. Jika tidak, terjadi error. LindormTable 2.8.2.26 dan versi yang lebih baru mendukung penghapusan batch. Fitur ini dinonaktifkan secara default. Untuk menggunakannya, hubungi dukungan teknis Lindorm. Untuk melihat atau melakukan upgrade versi saat ini, lihat panduan versi LindormTable dan pembaruan versi minor.

  • Setelah menjalankan pernyataan DELETE, Lindorm menambahkan penanda hapus ke data yang ingin dihapus, bukan melakukan kueri terhadap data tersebut sebelum operasi penghapusan. Oleh karena itu, operasi penghapusan berhasil terlepas dari apakah baris yang ingin dihapus benar-benar ada atau tidak.

  • Jika Anda menggunakan pernyataan UPSERT untuk menulis data dan menggunakan hint untuk menentukan timestamp masa depan sebagai versi data, menjalankan operasi DELETE tidak benar-benar menghapus data—meskipun pernyataan DELETE berhasil. Untuk informasi selengkapnya, lihat Manajemen Data Multi-versi.

Untuk mesin deret waktu:

  • Pada klausa WHERE pernyataan DELETE, Anda hanya dapat menentukan kondisi filter untuk kolom TAG.

  • Operasi DELETE tidak dapat menghapus catatan data tertentu. Operasi ini menghapus semua data dalam deret waktu yang memenuhi kondisi filter TAG.

Kondisi penghapusan (where_clause)

Baik LindormTable maupun LindormTSDB mendukung penentuan kondisi penghapusan (where_clause).

LindormTable

  • LindormTable sebelum versi 2.7.5: Klausa WHERE harus berisi kondisi filter ekuivalen (column_name=value) untuk semua kolom kunci primer, dan Anda hanya dapat menghapus satu baris data.

  • LindormTable 2.7.5 dan versi yang lebih baru dengan fitur penghapusan batch dinonaktifkan: Klausa WHERE harus berisi kondisi filter ekuivalen (column_name=value) untuk semua kolom kunci primer, dan Anda hanya dapat menghapus satu baris data.

  • LindormTable 2.7.5 dan versi yang lebih baru dengan fitur penghapusan batch diaktifkan mendukung berbagai macam kondisi filter dalam klausa WHERE, mirip dengan yang didukung oleh klausa WHERE pada pernyataan SELECT.

    Penting

    Error, seperti timeout, yang terjadi selama operasi DELETE dapat menyebabkan penghapusan data sebagian.

LindormTSDB

Klausa where_clause harus menentukan kolom TAG. Operasi penghapusan akan menghapus semua data dari deret waktu yang memenuhi kondisi filter TAG tersebut.

Ekspresi relasional (relation)

Saat menggunakan sintaks DELETE untuk menghapus deret waktu dari tabel deret waktu, bidang column_identifier dalam parameter relation harus berupa kolom VARCHAR (TAG).

Contoh

Asumsikan skema tabel dan datanya sebagai berikut:

-- Buat tabel bernama sensor.
CREATE TABLE sensor (
  p1 INTEGER NOT NULL, 
  p2 INTEGER NOT NULL, 
  c1 VARCHAR, 
  c2 VARCHAR,
  PRIMARY KEY(p1, p2)
);

-- Masukkan data ke tabel.
UPSERT INTO sensor(p1, p2, c1, c2) VALUES (1,1,'a','a'),(2,2,'b','b'),(3,3,'c','c');

Hapus satu baris data

DELETE FROM sensor WHERE p1 = 1 AND p2 = 1;

Verifikasi hasil

Jalankan pernyataan SELECT * FROM sensor; untuk memverifikasi bahwa data telah dihapus. Output yang diharapkan adalah sebagai berikut:

+------+------+------+------+
| p1   | p2   | c1   | c2   |
+------+------+------+------+
|    2 |    2 | b    | b    |
|    3 |    3 | c    | c    |
+------+------+------+------+

Hapus beberapa baris data sekaligus

Penting

Fitur ini sedang dalam pratinjau publik. Untuk menggunakannya, hubungi dukungan teknis Lindorm (ID DingTalk: s0s3eg3).

DELETE FROM sensor WHERE c1 > 'b' OR p2 > 1;

Verifikasi hasil

Jalankan pernyataan SELECT * FROM sensor; untuk memverifikasi bahwa data telah dihapus.