TRUNCATE Pada MySQL

Bismillahirrohmaanirrohiim. Alhamdulillahi Robbil 'Alamiin. Allahumma Sholli 'Alaa Sayyidinaa Muhammad.

TRUNCATE merupakan statemen dalam MySQL yang digunakan untuk menghapus seluruh data dalam suatu tabel. Statemen ini juga membuat sequence primary key (jika ada) kembali lagi ke awal.

Kita bisa menjalankan perintah ini dengan format berikut.

TRUNCATE TABLE nama_tabel; 

Ganti nama_tabel dengan nama tabel yang ingin Anda bersihkan isinya.

Anyway, statemen ini tidak hanya bisa digunakan pada MySQL. Kita bisa juga menggunakannya di DBMS lain, PostgreSQL misalnya.

Saya menemukan beberapa hal yang saya rasa menarik untuk disimak mengenai statemen TRUNCATE. Berikut beberapa di antaranya.

Apa Perbedaan Menggunakan Statemen TRUNCATE Dengan DELETE? 

Apabila Anda sudah tahu mengenai cara penggunakan statemen DELETE, mungkin Anda berpikir bahwa kita bisa menggunakannya untuk menghapus seluruh isi tabel dengan menggunakan perintah berikut.

DELETE FROM nama_tabel;

Namun, ada perbedaan antara keduanya. Statemen TRUNCATE, seperti yang sudah saya singgung di awal paragraf, akan membuat sequence primary key (jika ada) kembali lagi ke awal. Hal ini tidak akan terjadi jika Anda menggunakan statemen DELETE.

Selain itu, statemen TRUNCATE juga tidak akan menjalankan trigger yang akan terjadi pada trigger yang berjenis ON DELETE. Hal ini karena TRUNCATE tidak menjalankan statemen DELETE.

Lalu, Bagaimana Dengan Statemen DROP dan TRUNCATE?

Jelas beda. Statemen DROP digunakan untuk menghapus tabel, tentu saja datanya ikut terhapus. Sementara itu, statemen TRUNCATE hanya digunakan untuk menghapus data-datanya. Tabelnya tetap aman sentosa.

Omong-omong, ketika saya membaca dokumentasinya, cara kerjanya ternyata adalah statemen ini melakukan DROP kemudian CREATE tabel tersebut kembali.

Apakah Statemen Ini Bisa Digunakan Untuk Banyak Tabel Dalam Sekali Eksekusi?

Setahu saya, statemen ini hanya bisa dijalankan untuk 1 kali tabel dalam sekali eksekusi. Apabila ingin melakukan truncate terhadap beberapa tabel, Anda bisa menjalankan statemennya satu per satu. Namun, apabila ternyata Anda tahu bahwa statemen ini bisa digunakan untuk banyak tabel dalam sekali eksekusi, Anda bisa menyampaikannya di form komentar di bawah.

Referensi

  1. https://dev.mysql.com/doc/refman/8.0/en/truncate-table.html

Wallahul muwafiq ilaa aqwamith thooriq.

Komentar

Postingan populer dari blog ini

Cara Mengatasi "Access denied for user 'root'@'localhost' (mysqli_real_connect(): (HY000/1698))" di Ubuntu 20.04 LTS

Update dari Composer 1 ke Composer 2 di Ubuntu 20.04

Cara Mengatasi "Login without a password is forbidden by configuration (see AllowNoPassword)" di Ubuntu 20.04 LTS