Ας συζητήσουμε τη διαφορά μεταξύ των εντολών Commit και ROLLBACK σε SQL με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.
Συγκριτικό διάγραμμα
Βάση σύγκρισης | ΔΙΑΠΡΑΤΤΩ | ROLLBACK |
---|---|---|
Βασικός | Το COMMIT επικυρώνει τις τροποποιήσεις που έγιναν από την τρέχουσα συναλλαγή. | Η ROLLBACK διαγράφει τις τροποποιήσεις που πραγματοποιήθηκαν από την τρέχουσα συναλλαγή. |
Αποτέλεσμα | Μετά την εκτέλεση της εντολής COMMIT, η συναλλαγή δεν μπορεί να είναι ROLLBACK. | Μόλις εκτελεστεί η βάση δεδομένων ROLLBACK φτάσει στην προηγούμενη κατάστασή της, δηλαδή πριν από την εκτέλεση της πρώτης δήλωσης της συναλλαγής. |
Περιστατικό | COMMIT εμφανίζεται όταν η συναλλαγή εκτελείται με επιτυχία. | Το ROLLBACK συμβαίνει όταν η συναλλαγή διακόπτεται στη μέση της εκτέλεσης. |
Σύνταξη | ΔΙΑΠΡΑΤΤΩ; | ROLLBACK; |
Ορισμός του COMMIT
COMMIT είναι μια εντολή SQL, που σηματοδοτεί την επιτυχή ολοκλήρωση μιας συναλλαγής. Κάθε φορά που μια συναλλαγή ολοκληρώνει την εκτέλεση της χωρίς οποιαδήποτε διακοπή, οι τροποποιήσεις που γίνονται στη βάση δεδομένων, με τη συναλλαγή, καθίστανται μόνιμες. Αυτό σημαίνει ότι η βάση δεδομένων δεν μπορεί να ανακτήσει τις προηγούμενες καταστάσεις στις οποίες ήταν, πριν από την εκτέλεση της πρώτης δήλωσης, της συναλλαγής.
Η σύνταξη της δήλωσης COMMIT έχει ως εξής:
ΔΙΑΠΡΑΤΤΩ;
Καθώς η τελευταία δήλωση της συναλλαγής τελειώνει, η συναλλαγή γίνεται μερικώς δεσμευμένη . Στη συνέχεια, τα πρωτόκολλα ανάκτησης εξασφαλίζουν ότι ακόμη και μια αποτυχία του συστήματος, δεν θα ήταν σε θέση η βάση δεδομένων να κάνει τις τροποποιήσεις μόνιμες. Μόλις ελεγχθεί, το σημείο διαπραγμάτευσης της συναλλαγής έχει φθάσει και τελικά η συναλλαγή εισέρχεται σε μια αφοσιωμένη κατάσταση . Μόλις η συναλλαγή τεθεί σε μια δεσμευμένη κατάσταση, δεν μπορεί να γίνει επαναφορά και ξεκινά μια νέα συναλλαγή.
Ορισμός του ROLLBACK
Όπως το COMMIT, η ROLLBACK είναι επίσης μια εντολή SQL και σηματοδοτεί ότι η συναλλαγή δεν ολοκληρώθηκε με επιτυχία . Ως εκ τούτου, η συναλλαγή αποσύρεται για να ακυρώσει τις αλλαγές που πραγματοποιήθηκαν από τη συναλλαγή. Μετά την εκτέλεση του ROLLBACK, δεν υπάρχουν τροποποιήσεις, οι οποίες γίνονται από την τρέχουσα συναλλαγή.
Η σύνταξη του ROLLBACK έχει ως εξής:
ROLLBACK;
Η συναλλαγή ROLLBACK καθίσταται απαραίτητη αν παρουσιαστεί σφάλμα κατά την εκτέλεση μιας συναλλαγής. Το σφάλμα μπορεί να είναι η αποτυχία του συστήματος, η διακοπή ρεύματος, το σφάλμα στις δηλώσεις συναλλαγής, το σφάλμα του συστήματος. Σε περίπτωση διακοπής ρεύματος ή συντριβής του συστήματος, το ROLLBACK εμφανίζεται όταν ξαναρχίσει η λειτουργία του συστήματος. Η ROLLBACK μπορεί να εμφανιστεί μόνο αν δεν έχει εκτελεστεί ακόμα COMMIT.
Διαφορές κλειδιών μεταξύ COMMIT και ROLLBACK σε SQL
- Η κύρια διαφορά μεταξύ των εντολών COMMIT και ROLLBACK της SQL είναι ότι η εκτέλεση της εντολής COMMIT κάνει όλες τις αλλαγές που γίνονται από την τρέχουσα συναλλαγή να γίνουν μόνιμες. Από τα άλλα χέρια, η εκτέλεση του ROLLBACK διαγράφει όλες τις αλλαγές που έγιναν από την τρέχουσα συναλλαγή.
- Μόλις εκτελεστεί η εντολή COMMIT, η τροποποίηση που έγινε από τη συναλλαγή δεν μπορεί να είναι ROLLBACK. Ωστόσο, μόλις εκτελεστεί η εντολή ROLLBACK, η βάση δεδομένων φτάνει στην προηγούμενη κατάστασή της.
- Το COMMIT παίρνει εκτελεστεί στην επιτυχή εκτέλεση των δηλώσεων συναλλαγής. Ωστόσο, η ROLLBACK εκτελείται όταν η συναλλαγή δεν εκτελεστεί με επιτυχία.
Συμπέρασμα:
Για να διασφαλίσετε ότι οι αλλαγές που πραγματοποιούνται από τη συναλλαγή αποθηκεύονται μόνιμα στη βάση δεδομένων, χρησιμοποιήστε το COMMIT μετά την επιτυχή ολοκλήρωση της συναλλαγής. Σε περίπτωση που η συναλλαγή αντιμετωπίσει οποιοδήποτε σφάλμα κατά την εκτέλεση τότε για να αναιρέσει τις αλλαγές που πραγματοποιήθηκαν από τη συναλλαγή, χρησιμοποιείται το ROLLBACK.