Drop vs Truncate
Drop and Truncate adalah dua pernyataan SQL (Structured Query Language) yang digunakan dalam Sistem Pengurusan Pangkalan Data, di mana kami ingin membuang rekod data dari pangkalan data. Kedua-dua pernyataan Drop dan Truncate membuang keseluruhan data dalam jadual dan pernyataan SQL yang berkaitan. Operasi hapus tidak berkesan dalam kes ini kerana menggunakan lebih banyak ruang penyimpanan daripada Drop and Truncate.
Sekiranya, jika kita ingin membuang jadual dalam pangkalan data dengan semua datanya, SQL membolehkan kita melakukan ini dengan mudah menggunakan pernyataan Drop. Drop command adalah perintah DDL (Data Definition Language), dan dapat digunakan untuk menghancurkan pangkalan data, tabel, indeks atau tampilan yang ada. Ia menghapus keseluruhan maklumat dalam jadual, serta struktur jadual dari pangkalan data. Juga, kami mungkin ingin menyingkirkan semua data dalam tabel secara sederhana, tetapi tanpa jadual, dan kami dapat menggunakan pernyataan Truncate dalam SQL dalam senario seperti itu. Truncate juga merupakan perintah DDL dan menghilangkan semua baris dalam jadual tetapi mengekalkan definisi jadual yang sama untuk penggunaan masa depan.
Perintah drop
Seperti yang telah disebutkan sebelumnya, perintah Drop menghapus definisi tabel dan semua datanya, kekangan integriti, indeks, pemicu, dan hak akses, yang dibuat pada tabel tersebut. Jadi ia menjatuhkan objek yang ada dari pangkalan data sepenuhnya, dan hubungan dengan jadual lain juga tidak akan berlaku lagi setelah melaksanakan perintah. Ia juga membuang semua maklumat mengenai jadual dari kamus data. Berikut adalah sintaks biasa untuk menggunakan pernyataan Drop pada jadual.
JADUAL HABIS
Kita hanya perlu mengganti nama jadual yang ingin kita hapus dari pangkalan data dalam contoh arahan Drop di atas.
Penting untuk menunjukkan bahawa pernyataan Drop tidak dapat digunakan untuk menghapus jadual, yang telah dirujuk oleh kekangan kunci asing. Dalam kes itu, kekangan kunci asing yang merujuk, atau jadual tertentu harus dijatuhkan terlebih dahulu. Juga, pernyataan Drop tidak dapat diterapkan pada tabel sistem dalam pangkalan data.
Oleh kerana perintah Drop adalah pernyataan komit automatik, operasi setelah dipecat tidak dapat diputar kembali dan tidak ada pemicu yang akan dipecat. Apabila jadual dijatuhkan, semua rujukan ke meja tidak akan berlaku, dan jadi, jika kita ingin menggunakan jadual itu lagi, ia harus dibuat semula dengan semua kekangan integriti dan hak akses. Semua hubungan dengan jadual yang lain, juga harus dijumpai semula.
Perintah pemotongan
Perintah pemotongan adalah perintah DDL, dan ia menghapus semua baris dalam jadual tanpa syarat yang ditentukan pengguna, dan melepaskan ruang yang digunakan oleh jadual, tetapi struktur jadual dengan lajur, indeks dan kekangannya tetap sama. Truncate menghapuskan data dari jadual dengan menyahpindah halaman data yang digunakan untuk menyimpan data jadual, dan hanya penyahpindah halaman ini yang disimpan dalam log transaksi. Oleh itu, ia menggunakan sumber log transaksi dan sumber sistem yang lebih sedikit berbanding dengan arahan SQL lain yang berkaitan seperti Hapus. Jadi Truncate adalah pernyataan yang sedikit lebih cepat daripada yang lain. Berikut adalah sintaks biasa untuk perintah Truncate.
JADUAL TRUNCATE
Kita harus mengganti nama jadual, dari mana kita mahu membuang keseluruhan data, dalam sintaks di atas.
Pemotongan tidak boleh digunakan pada meja yang telah dirujuk oleh kekangan kunci asing. Ia menggunakan komit secara automatik sebelum bertindak dan komitmen lain sesudahnya sehingga pemulangan transaksi tidak mungkin dilakukan, dan tidak ada pencetus yang diaktifkan. Sekiranya kita mahu menggunakan semula jadual, kita hanya perlu mengakses definisi jadual yang ada dalam pangkalan data.
Apakah perbezaan antara Drop dan Truncate?
Kedua-dua perintah Drop dan Truncate adalah perintah DDL dan juga pernyataan komitmen automatik sehingga transaksi yang dilakukan menggunakan perintah ini tidak dapat dikembalikan.
Perbezaan utama antara Drop dan Truncate adalah bahawa perintah Drop membuang, tidak hanya semua data dalam tabel, tetapi juga menghapus struktur tabel secara permanen dari pangkalan data dengan semua rujukan, sementara perintah Truncate hanya menghapus semua baris dalam tabel, dan mengekalkan struktur jadual dan rujukannya.
Sekiranya jadual dijatuhkan, hubungan dengan jadual lain tidak akan berlaku lagi, dan kekangan integriti dan hak akses juga akan dihapuskan. Oleh itu, jika jadual itu diperlukan untuk digunakan kembali, ia harus disusun semula dengan hubungan, kekangan integriti, dan juga hak akses. Tetapi jika meja dipotong, struktur meja dan kekangannya tetap ada untuk digunakan di masa depan, jadi, rekreasi di atas tidak diperlukan untuk digunakan kembali.
Apabila arahan ini diterapkan, kita harus berhati-hati menggunakannya. Juga, kita harus mempunyai pemahaman yang lebih baik mengenai sifat perintah ini, bagaimana perintah itu berfungsi, dan juga beberapa perancangan yang teliti sebelum menggunakannya untuk mencegah kehilangan barang-barang penting. Akhirnya, kedua-dua arahan ini dapat digunakan untuk membersihkan pangkalan data dengan cepat dan mudah, menghabiskan lebih sedikit sumber.