Συνιστάται, 2024

Επιλογή Συντάκτη

Διαφορά μεταξύ COMMIT και ROLLBACK σε SQL

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

Ας συζητήσουμε τη διαφορά μεταξύ των εντολών 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

  1. Η κύρια διαφορά μεταξύ των εντολών COMMIT και ROLLBACK της SQL είναι ότι η εκτέλεση της εντολής COMMIT κάνει όλες τις αλλαγές που γίνονται από την τρέχουσα συναλλαγή να γίνουν μόνιμες. Από τα άλλα χέρια, η εκτέλεση του ROLLBACK διαγράφει όλες τις αλλαγές που έγιναν από την τρέχουσα συναλλαγή.
  2. Μόλις εκτελεστεί η εντολή COMMIT, η τροποποίηση που έγινε από τη συναλλαγή δεν μπορεί να είναι ROLLBACK. Ωστόσο, μόλις εκτελεστεί η εντολή ROLLBACK, η βάση δεδομένων φτάνει στην προηγούμενη κατάστασή της.
  3. Το COMMIT παίρνει εκτελεστεί στην επιτυχή εκτέλεση των δηλώσεων συναλλαγής. Ωστόσο, η ROLLBACK εκτελείται όταν η συναλλαγή δεν εκτελεστεί με επιτυχία.

Συμπέρασμα:

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

Top