DELETE: Menghapus Data dengan Aman

Menghapus baris dengan DELETE ... WHERE, bedanya dengan TRUNCATE dan DROP, perlindungan FOREIGN KEY, serta teknik soft delete yang dipakai di aplikasi nyata.

Part 10 dari 38 ± 35 menit Gratis

Bentuk dasar DELETE

DELETE FROM nama_tabel
WHERE kondisi;
DELETE FROM pelanggan WHERE id = 10;

Sama seperti UPDATE, WHERE adalah nyawa perintah ini. DELETE FROM pelanggan; (tanpa WHERE) menghapus seluruh pelanggan.

Tiga cara "menghapus" dan bedanya

DELETETRUNCATE TABLEDROP TABLE
Yang hilangBaris sesuai WHERE (atau semua)Semua barisTabel dan seluruh isinya
Struktur tabelTetapTetapHilang
Bisa pakai WHEREYaTidakTidak
Nomor AUTO_INCREMENTLanjutMulai dari 1 lagi-
Kecepatan (tabel besar)LambatSangat cepatSangat cepat

Penjaga bernama FOREIGN KEY

Coba hapus produk "Mie Goreng" (id 7) yang pernah dipesan:

DELETE FROM produk WHERE id = 7;
-- ERROR 1451: Cannot delete or update a parent row:
--             a foreign key constraint fails

MySQL menolak karena ada data di detail_pesanan yang masih menunjuk produk itu. Kalau diizinkan, riwayat pesanan akan menunjuk ke produk yang tidak ada. Ini fitur, bukan bug: databasemu menjaga konsistensi sendiri. Cara menyikapinya: hapus data anaknya dulu, atau tentukan aturan relasi (ON DELETE CASCADE, dibahas di bab Relasi), atau gunakan soft delete.

Soft delete: jangan benar-benar menghapus

Di aplikasi nyata, data penting jarang dihapus sungguhan. Biasanya ditambah kolom penanda:

ALTER TABLE pelanggan ADD COLUMN dihapus_pada DATETIME NULL;
-- "menghapus":
UPDATE pelanggan SET dihapus_pada = NOW() WHERE id = 10;
-- menampilkan hanya yang aktif:
SELECT * FROM pelanggan WHERE dihapus_pada IS NULL;

Keuntungannya: bisa dipulihkan, riwayat tetap ada, dan laporan lama tidak rusak.

Checklist sebelum DELETE

  1. Tulis dulu SELECT * FROM ... WHERE ... yang sama dan periksa hasilnya.
  2. Pastikan WHERE ada — baca ulang perintahmu sekali lagi.
  3. Pastikan ada backup, atau bungkus dengan transaksi.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X