Perbezaan Antara Drop dan Truncate

Anonim

Drop vs Truncate

Drop and Truncate adalah dua pernyataan SQL (Structured Query Language) yang digunakan dalam Sistem Pengurusan Pangkalan Data, di mana kami ingin menghapuskan rekod data dari pangkalan data. Kedua-dua kenyataan Drop dan Truncate membuang keseluruhan data dalam jadual dan pernyataan SQL yang berkaitan. Padam operasi tidak berkesan dalam kes ini kerana ia menggunakan lebih banyak ruang penyimpanan daripada Drop and Truncate.

Sekiranya kita mahu membuang jadual dalam pangkalan data bersama dengan semua datanya, SQL membolehkan kita dengan mudah melaksanakannya menggunakan pernyataan Drop. Perintah Drop adalah arahan DDL (Data Definition Language), dan ia boleh digunakan untuk memusnahkan pangkalan data, jadual, indeks atau pandangan yang ada. Ia memadamkan keseluruhan maklumat dalam jadual, serta struktur jadual dari pangkalan data. Juga, kami mungkin ingin menyingkirkan semua data dalam jadual semata-mata, tetapi tanpa jadual, dan kami boleh menggunakan pernyataan Truncate dalam SQL dalam senario sedemikian. Truncate juga merupakan arahan DDL dan ia menghapuskan semua baris dalam jadual tetapi mengekalkan definisi jadual yang sama untuk kegunaan masa depan.

Drop command

Seperti yang telah disebutkan sebelumnya, perintah Drop menghapus definisi jadual dan semua datanya, kekangan integriti, indeks, pencetus, dan keistimewaan akses yang dibuat pada jadual itu. Oleh itu, ia meletakkan objek sedia ada dari pangkalan data sepenuhnya, dan perhubungan ke jadual lain juga tidak lagi sah selepas melaksanakan arahan. Juga ia menghilangkan semua maklumat mengenai jadual dari kamus data. Berikut adalah sintaks biasa untuk menggunakan kenyataan Drop pada jadual.

DROP TABLE

Kami hanya perlu menggantikan nama jadual yang ingin kami keluarkan dari pangkalan data di atas contoh perintah Drop.

Penting untuk menyatakan bahawa kenyataan Drop tidak boleh digunakan untuk memadamkan jadual, yang telah pun dirujuk oleh kekangan utama asing. Dalam hal ini, rujuk kekangan utama asing, atau jadual tertentu harus dijatuhkan terlebih dahulu. Juga, kenyataan Drop tidak boleh digunakan pada jadual sistem dalam pangkalan data.

Sebagai arahan Drop adalah kenyataan komit auto, operasi sekali dipecat tidak boleh dilancarkan dan tiada pemicu akan dipecat. Apabila jadual dijatuhkan, semua rujukan kepada jadual tidak akan sah, jadi jika kita mahu menggunakan jadual itu lagi, ia perlu dicipta semula dengan semua kekangan integriti dan keistimewaan akses. Semua perhubungan ke jadual lain juga perlu diletakkan semula.

Perintah Truncate

Perintah Truncate adalah perintah DDL, dan ia menghilangkan semua baris dalam jadual tanpa syarat tertentu pengguna, dan melepaskan ruang yang digunakan oleh jadual, tetapi struktur jadual dengan lajur, indeks dan kekangan tetap sama.Truncate menghapuskan data dari jadual dengan mengesahkan halaman data yang digunakan untuk menyimpan data jadual, dan hanya deallocations halaman ini disimpan dalam log transaksi. Oleh itu, ia menggunakan lebih sedikit sumber log transaksi dan sumber sistem berbanding dengan arahan SQL lain yang berkaitan seperti Delete. Jadi Truncate adalah pernyataan sedikit lebih cepat daripada yang lain. Berikut adalah sintaks biasa untuk arahan Truncate.

TRUNCATE TABLE

Kita harus menggantikan nama jadual, dari mana kita mahu menghapus keseluruhan data, dalam sintaks di atas.

Truncate tidak boleh digunakan pada jadual yang telah dirujuk oleh kekangan utama asing. Ia menggunakan komit secara automatik sebelum ia bertindak dan melakukan lagi selepas itu supaya pengembalian transaksi tidak mungkin, dan tiada pencetus dipecat. Jika kita mahu menggunakan semula jadual, kita hanya perlu mengakses definisi jadual sedia ada dalam pangkalan data.

Apakah perbezaan antara Drop and Truncate?

Kedua-dua arahan Drop and Truncate adalah arahan DDL dan juga kenyataan komit auto supaya urusniaga yang dilakukan menggunakan perintah ini tidak dapat dilancarkan.

Perbezaan utama antara Drop and Truncate ialah perintah Drop menghapus, bukan sahaja semua data dalam jadual, tetapi juga menghapus struktur jadual secara kekal dari pangkalan data dengan semua rujukan, sedangkan perintah Truncate hanya menghilangkan semua baris dalam jadual, dan ia mengekalkan struktur jadual dan rujukannya.

Jika jadual dijatuhkan, perhubungan ke jadual lain tidak lagi sah, dan kekangan integriti dan keistimewaan akses juga akan dikeluarkan. Jadi jika jadual diperlukan untuk digunakan semula, ia perlu dibina semula dengan hubungan, kekangan integriti, dan juga keistimewaan akses. Tetapi jika jadual dipotong, struktur meja dan kekangannya kekal untuk kegunaan masa depan, dan sebagainya, sebarang rekreasi di atas tidak diperlukan untuk menggunakan semula.

Apabila arahan ini digunakan, kita mesti berhati-hati untuk menggunakannya. Juga, kita harus mempunyai pemahaman yang lebih baik mengenai sifat arahan ini, bagaimana mereka bekerja, dan juga beberapa perancangan yang teliti sebelum menggunakannya untuk menghindari dari keperluan yang hilang. Akhirnya, kedua-dua perintah ini boleh digunakan untuk membersihkan pangkalan data dengan cepat dan mudah, memakan sumber yang lebih sedikit.