Διαφορά μεταξύ πτώσης και να περικοπεί

Anonim

Drop vs περικόψει

Drop και περικόψτε είναι δύο SQL (Structured Query Language) δηλώσεις που χρησιμοποιούνται στα Συστήματα διαχείρισης Βάσεων Δεδομένων, όπου επιθυμούμε να καταργήσουμε τα αρχεία δεδομένων από μια βάση δεδομένων. Αμφότερες οι εντολές Drop και Truncate καταργούν το σύνολο των δεδομένων σε έναν πίνακα και τη σχετική εντολή SQL. Η λειτουργία διαγραφής δεν είναι αποτελεσματική σε αυτή την περίπτωση επειδή χρησιμοποιεί περισσότερους αποθηκευτικούς χώρους από το Drop and Truncate.

Σε περίπτωση που θέλουμε να απορρίψουμε έναν πίνακα σε μια βάση δεδομένων μαζί με όλα τα δεδομένα του, η SQL μας επιτρέπει να κάνουμε εύκολα αυτό χρησιμοποιώντας την εντολή Drop. Η εντολή Drop είναι μια εντολή DDL (Data Definition Language) και μπορεί να χρησιμοποιηθεί για να καταστρέψει μια υπάρχουσα βάση δεδομένων, πίνακα, ευρετήριο ή προβολή. Διαγράφει ολόκληρη την πληροφορία σε έναν πίνακα, καθώς και τη δομή του πίνακα από τη βάση δεδομένων. Επίσης, ίσως να θέλουμε να απαλλαγούμε από όλα τα δεδομένα σε έναν πίνακα απλά, αλλά χωρίς τον πίνακα, και μπορούμε να χρησιμοποιήσουμε τη δήλωση Truncate σε SQL σε ένα τέτοιο σενάριο. Το Truncate είναι επίσης μια εντολή DDL και εξαλείφει όλες τις σειρές ενός πίνακα αλλά διατηρεί τον ίδιο ορισμό του πίνακα για μελλοντική χρήση.

- <->

Η εντολή Drop

Όπως αναφέρθηκε προηγουμένως, η εντολή Drop καταργεί τον ορισμό του πίνακα και όλα τα δεδομένα, τους περιορισμούς ακεραιότητας, τα ευρετήρια, τις σκανδάλες και τα δικαιώματα πρόσβασης που δημιουργήθηκαν σε αυτόν τον συγκεκριμένο πίνακα. Επομένως, αφαιρεί πλήρως το υπάρχον αντικείμενο από τη βάση δεδομένων και οι σχέσεις σε άλλους πίνακες επίσης δεν θα ισχύουν πλέον μετά την εκτέλεση της εντολής. Επίσης, καταργεί όλες τις πληροφορίες σχετικά με τον πίνακα από το λεξικό δεδομένων. Ακολουθεί η τυπική σύνταξη για τη χρήση της εντολής Drop σε έναν πίνακα.

ΠΙΝΑΚΑΣ DROP

Πρέπει απλώς να αντικαταστήσουμε το όνομα του πίνακα που θέλουμε να καταργήσουμε από τη βάση δεδομένων στο παραπάνω παράδειγμα της εντολής Drop.

Είναι σημαντικό να επισημάνουμε ότι η εντολή Drop δεν μπορεί να χρησιμοποιηθεί για τη διαγραφή ενός πίνακα, ο οποίος έχει ήδη αναφερθεί από έναν περιορισμό ξένου κλειδιού. Σε αυτή την περίπτωση, ο περιορισμός του ξένου κλειδιού αναφοράς, ή ο συγκεκριμένος πίνακας θα πρέπει να αφαιρεθούν πρώτα. Επίσης, η εντολή Drop δεν μπορεί να εφαρμοστεί στους πίνακες συστήματος στη βάση δεδομένων.

Δεδομένου ότι η εντολή Drop είναι μια εντολή αυτόματης δέσμευσης, η λειτουργία που εκτοξεύθηκε δεν μπορεί να επαναληφθεί και δεν ενεργοποιηθούν οι ενεργοποιητές. Όταν πέσει ένας πίνακας, όλες οι αναφορές στον πίνακα δεν θα είναι έγκυρες και έτσι, εάν θέλουμε να χρησιμοποιήσουμε ξανά τον πίνακα, πρέπει να αναδημιουργηθεί με όλους τους περιορισμούς ακεραιότητας και τα δικαιώματα πρόσβασης. Όλες οι σχέσεις με τα άλλα τραπέζια πρέπει επίσης να εντοπιστούν ξανά.

Περικόψτε την εντολή

Περικόψτε εντολή είναι μια εντολή DDL, και αφαιρεί όλες τις σειρές σε ένα τραπέζι χωρίς όρους χρήσης που καθορίζονται, και απελευθερώνει το χώρο που χρησιμοποιείται από το τραπέζι, αλλά η δομή του πίνακα με στήλες, τους δείκτες και τους περιορισμούς της παραμένουν ίδιες.Το Truncate εξαλείφει τα δεδομένα από έναν πίνακα, ανακατανομώντας τις σελίδες δεδομένων που χρησιμοποιούνται για την αποθήκευση των δεδομένων του πίνακα και μόνο αυτές οι αποεπιλογές σελίδων διατηρούνται στο αρχείο καταγραφής συναλλαγών. Επομένως, χρησιμοποιεί λιγότερους πόρους καταγραφής συναλλαγών και πόρους συστήματος σε σύγκριση με άλλες σχετικές εντολές SQL, όπως το Delete. Έτσι Truncate είναι λίγο πιο γρήγορα δήλωση από άλλες. Ακολουθεί η τυπική σύνταξη για την εντολή Truncate.

ΠΙΝΑΚΑΣ TRUNCATE

Θα πρέπει να αντικαταστήσουμε το όνομα του πίνακα, από το οποίο θέλουμε να αφαιρέσουμε το σύνολο των δεδομένων, στην παραπάνω σύνταξη.

Το Truncate δεν μπορεί να χρησιμοποιηθεί σε έναν πίνακα που έχει παραπεμφθεί από έναν περιορισμό ξένου κλειδιού. Χρησιμοποιεί αυτόματα μια δέσμευση πριν ενεργήσει και μια άλλη διαπραγμάτευση αργότερα, έτσι ώστε η επαναφορά της συναλλαγής να είναι αδύνατη και δεν ενεργοποιούνται εκκινήσεις. Αν θέλουμε να επαναχρησιμοποιήσουμε τον πίνακα, χρειάζεται μόνο να έχουμε πρόσβαση στον υπάρχοντα ορισμό πίνακα στη βάση δεδομένων.

Ποια είναι η διαφορά ανάμεσα στο Drop and Truncate;

Και οι εντολές Drop και Truncate είναι εντολές DDL και επίσης δηλώσεις αυτόματης δέσμευσης έτσι ώστε οι συναλλαγές που εκτελούνται χρησιμοποιώντας αυτές τις εντολές να μην μπορούν να επαναληφθούν.

Η κύρια διαφορά μεταξύ του Drop και του Truncate είναι ότι η εντολή Drop αφαιρεί όχι μόνο όλα τα δεδομένα ενός πίνακα αλλά επίσης αφαιρεί μόνιμα τη δομή του πίνακα από τη βάση δεδομένων με όλες τις αναφορές ενώ η εντολή Truncate καταργεί όλες τις σειρές σε ένα τραπέζι, και διατηρεί τη δομή του πίνακα και τις αναφορές του.

Εάν πέσει ένας πίνακας, οι σχέσεις σε άλλους πίνακες δεν θα είναι πλέον έγκυρες και οι περιορισμοί ακεραιότητας και τα δικαιώματα πρόσβασης θα καταργηθούν επίσης. Επομένως, εάν ο πίνακας απαιτείται να επαναχρησιμοποιηθεί, πρέπει να ανακατασκευαστεί με τις σχέσεις, τους περιορισμούς ακεραιότητας και τα προνόμια πρόσβασης. Αλλά εάν ένας πίνακας είναι περικομμένος, η δομή του πίνακα και οι περιορισμοί του παραμένουν για μελλοντική χρήση και έτσι, οποιαδήποτε από τις παραπάνω αναψυχές δεν απαιτείται για επαναχρησιμοποίηση.

Όταν εφαρμόζονται αυτές οι εντολές, πρέπει να είμαστε προσεκτικοί για να τις χρησιμοποιήσουμε. Επίσης, θα πρέπει να έχουμε καλύτερη κατανόηση σχετικά με τη φύση αυτών των εντολών, τον τρόπο λειτουργίας τους, καθώς και με έναν προσεκτικό σχεδιασμό πριν από τη χρήση τους, προκειμένου να αποφευχθεί η έλλειψη βασικών στοιχείων. Τέλος, και οι δύο αυτές εντολές μπορούν να χρησιμοποιηθούν για να καθαρίσουν γρήγορα και εύκολα τις βάσεις δεδομένων, καταναλώνοντας λιγότερους πόρους.