Drop vs Truncate

Drop dan 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, jika kita mahu membuang jadual dalam pangkalan data sama sekali 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 memadam 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 penggunaan masa depan.

Letakkan arahan

Seperti yang dinyatakan sebelum ini, arahan Drop menghapus takrif jadual dan semua data, 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 membuang semua maklumat mengenai jadual dari kamus data. Berikut adalah sintaks biasa untuk menggunakan kenyataan Drop pada jadual.

DROP TABLE

Kita perlu menggantikan nama jadual yang ingin kita keluarkan dari pangkalan data di atas contoh perintah Drop.

Adalah penting untuk menunjukkan bahawa kenyataan Drop tidak boleh digunakan untuk memadam jadual, yang telah 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 sah, jadi jika kita mahu menggunakan jadual itu semula, 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 arahan 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 menghilangkan data dari jadual dengan mengasingkan halaman data yang digunakan untuk menyimpan data jadual, dan hanya deallocation halaman ini disimpan dalam log transaksi. Jadi ia menggunakan sumber log transaksi dan sumber sistem yang lebih sedikit dibandingkan 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.

JADUAL PERKHIDMATAN

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 urus niaga tidak mungkin, dan tiada pencetus dipecat. Sekiranya kita ingin 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 urus niaga yang dilakukan menggunakan arahan ini tidak dapat dilancarkan.

Perbezaan utama antara Drop dan Truncate ialah perintah Drop menghapus, bukan sahaja semua data dalam jadual, tetapi juga menghapus struktur meja secara kekal dari pangkalan data dengan semua rujukan, sedangkan perintah Truncate hanya menghilangkan semua baris dalam jadual , dan ia memelihara 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 penggunaan masa depan, dan sebagainya, mana-mana 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 berfungsi, 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.