Statement Truncate Table MySQL


Statement / pernyataan truncate table pada mysql digunakan untuk mengosongkan sebuah tabel, truncate merupakan langkah tercepat bila ingin menghapus keseluruhan data pada sebuah tabel tanpa menghapus tabel tersebut (drop table) dan lebih cepat dibanding menggunakan statement DELETE. Tentunya statement tersebut didasarkan pada kebutuhan yang paling relevan untuk digunakan, jika kalian tidak ingin menghapus struktur tabel dan ingin menghapus data pada baris tertentu, maka kalian bisa menggunakan perintah Delete, sedangkan jika data pada sebuah tabel dirasa sudah tidak dibutuhkan lagi sehingga semua data pada sebuah tabel harus dihapus namun masih tetap membutuhkan struktur tabelnya maka bisa gunakan statement Truncate, sementara jika tabel dan isinya sudah tidak diperlukan lagi maka bisa gunakan perintah Drop Table.

Agar lebih jelasnya lagi, berikut format sintaks dan cara menggunakan statement truncate;
Format:

Truncate table nama_tabel

Contoh:

mysql> select id_dosen, nama from dosen;
+----------+-------------------------------------+
| id_dosen | nama                                |
+----------+-------------------------------------+
|        1 | Angga Sandra Saputra, DR. SKOM., MT |
|        2 | AA Ardiansyah, ST., MT              |
|        3 | AA Sumanto, SE., MMSI               |
|        4 | Aiman, SE., MM                      |
|        5 | Aldi Taher, ST., MT                 |
+----------+-------------------------------------+
5 rows in set (0.00 sec)

mysql> truncate table dosen;
Query OK, 0 rows affected (0.30 sec)

mysql> select id_dosen, nama from dosen;
Empty set (0.10 sec)

Pada contoh diatas dapat dilihat bahwa data pada tabel dosen semuanya telah terhapus, selain itu statement truncate juga akan me-reset nilai auto_increment, ini yang membuat truncate lebih cepat dibandingkan delete karena jika menggunakan delete selain harus menyatakan kondisi terlebih dahulu perintah delete juga tidak akan me-reset auto_increment. Kalian perlu berhati-hati dalam menggunakan statement truncate karena data yang terhapus dengan statement ini tidak dapat dikembalikan meskipun menjalankan pernyataan rollback, untuk itu pastikan untuk tidak memberikan hak akses (user privilages) ke semua user database.

Tabel Parent:
Baik statement truncate maupun delete jika itu dilakukan pada tabel parent maka bisa menghasilkan error, dalam hal ini kalian perlu menghapus foreign key terlebih dahulu pada tabel child sehingga data pada tabel parent dapat dihapus / dikosongkan, contohnya seperti berikut:

Tabel:


Contoh:

mysql> truncate table dosen;
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`geekasmedia`.`gaji`, CONSTRAINT `gaji_dosen`)

mysql> delete from dosen where id_dosen = 1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`geekasmedia`.`gaji`, CONSTRAINT `gaji_dosen` FOREIGN KEY (`dosen_id`) REFERENCES `dosen` (`id_dosen`))

Dengan demikian, baik menggunakan truncate, delete bahkan drop pada tabel parent kita tidak dapat langsung melakukannya begitu saja melainkan harus menghapus foreign key terlebih dahulu yang ada pada child tabel. Pembahasan truncate table mysql telah selesai, jangan sungkan untuk bertanya jika ada hal yang belum dipahami, untuk pemabahasan mysql lainnya dapat ditemukan melalui menu daftar isi.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama