Anda dapat mengeksekusi pernyataan DELETE untuk menghapus data dari tabel.
Catatan penggunaan
Tabel tempat Anda mengeksekusi pernyataan
DELETEharus memiliki kunci utama.Anda tidak dapat menggunakan alias tabel untuk mengeksekusi pernyataan
DELETE.Jika Anda ingin menghapus data dari seluruh tabel atau partisi, disarankan untuk menggunakan pernyataan
TRUNCATE TABLEatauTRUNCATE TABLE PARTITION, bukan pernyataanDELETE. Untuk informasi lebih lanjut, lihat TRUNCATE TABLE.Saat menghapus data dari beberapa tabel, Anda hanya dapat mengeksekusi pernyataan SQL pada satu tabel saja.
Sintaksis
Untuk menghapus data dari satu tabel, Anda dapat memilih data yang memenuhi kondisi tertentu dalam klausa WHERE dan menghapusnya. Saat menghapus data dari beberapa tabel, Anda dapat mengeksekusi pernyataan SQL untuk memilih data dari tabel gabungan dan menghapus data yang memenuhi kondisi dalam klausa WHERE dari satu tabel.
Hapus data dari satu tabel
DELETE FROM nama_tabel
[ WHERE kondisi ] Hapus data dari beberapa tabel
Penghapusan data dari beberapa tabel hanya didukung pada cluster AnalyticDB for MySQL versi V3.2.0.0 atau yang lebih baru.
Untuk melihat dan memperbarui versi minor dari cluster AnalyticDB for MySQL, masuk ke konsol AnalyticDB for MySQL dan pergi ke bagian Configuration Information di halaman Cluster Information.
DELETE nama_tabel1
FROM nama_tabel1 [INNER JOIN | LEFT JOIN | RIGHT JOIN] nama_tabel2 ON nama_tabel1.kolom1 = nama_tabel2.kolom1
[WHERE kondisi_where]Contoh
Hapus data dengan kolom
namabernilaiAlexdari tabel pelanggan.DELETE FROM pelanggan WHERE nama_pelanggan='Alex';Hapus data dengan kolom usia kurang dari 18 dari tabel pelanggan.
DELETE FROM pelanggan WHERE usia<18;Pilih data dari tabel gabungan berdasarkan kolom
iddari tabel pelanggan dan kolomiddari tabel pesanan, lalu hapus data dengan kolomusiabernilai 18 dari tabel pelanggan.DELETE pelanggan FROM pelanggan JOIN pesanan ON pelanggan.id = pesanan.id WHERE pelanggan.usia = 18;
Kesalahan umum dan pemecahan masalah
Mengapa ruang penyimpanan tetap tidak berkurang setelah saya menghapus data dari tabel?
Penyebab: Operasi DELETE bersifat asinkron. Setelah mengeksekusi pernyataan DELETE untuk menghapus data dari tabel, ruang penyimpanan tidak langsung berkurang.
Solusi: Setelah mengeksekusi pernyataan DELETE, picu pekerjaan BUILD.
Pekerjaan BUILD dapat dipicu secara otomatis setelah cluster AnalyticDB for MySQL memenuhi kondisi tertentu. Anda juga dapat memicu pekerjaan BUILD secara manual.