Apa perbedaan mendasar antara DELETE dan TRUNCATE dalam SQL ?
aqilafit821 Answered question February 11, 2025
DELETE dan TRUNCATE sama-sama buat hapus data, tapi beda cara kerjanya:
🔹 DELETE
- Bisa hapus data berdasarkan kondisi pakai
WHERE
. - Bisa di-rollback kalau pakai transaksi (
BEGIN TRANSACTION
). - Lebih lambat karena cek satu per satu.
🔹 TRUNCATE
- Hapus semua data dalam tabel tanpa pengecualian.
- Nggak bisa pakai
WHERE
. - Lebih cepat karena langsung kosongin tabel tanpa cek per baris.
- Nggak bisa di-rollback di beberapa database.
Jadi, kalau mau hapus sebagian data → pakai DELETE. Kalau mau bersihin tabel total → pakai TRUNCATE
aqilafit821 Answered question February 11, 2025
Perbedaan mendasar antara DELETE dan TRUNCATE dalam SQL:
- DELETE:
- Menghapus data baris per baris.
- Memungkinkan penggunaan kondisi (WHERE) untuk memilih baris yang dihapus.
- Bisa rollback jika transaksi menggunakan fitur ACID (misalnya, dalam transaksi).
- Lebih lambat karena mencatat setiap baris yang dihapus.
- TRUNCATE:
- Menghapus semua data dalam tabel tanpa seleksi.
- Lebih cepat karena tidak mencatat penghapusan per baris.
- Tidak bisa di-rollback di kebanyakan DBMS.
- Biasanya, reset IDENTITY (jika ada).
Intinya: DELETE lebih fleksibel dan aman (tapi lebih lambat), sedangkan TRUNCATE lebih cepat tapi lebih drastis.
putriade137 Answered question February 3, 2025
Perbedaan mendasar antara DELETE dan TRUNCATE dalam SQL:
- DELETE: Menghapus baris satu per satu, bisa diberi kondisi dengan
WHERE
, lebih lambat, mencatat setiap penghapusan di log, dan bisa dipulihkan (rollback). - TRUNCATE: Menghapus seluruh data tanpa kondisi, lebih cepat, tidak mencatat penghapusan baris satu per satu, dan tidak memicu trigger. Dapat mengubah nilai auto-increment di beberapa DB.
DELETE lebih fleksibel, TRUNCATE lebih cepat tapi lebih drastis.
ajieechy487 Answered question January 15, 2025