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

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 1 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 12 Ενδέχεται 2024
Anonim
CS50 2013 - Week 9, continued
Βίντεο: CS50 2013 - Week 9, continued

Περιεχόμενο


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

Ας συζητήσουμε τη διαφορά μεταξύ των εντολών Commit και ROLLBACK σε SQL με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

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

Ορισμός του COMMIT

ΔΙΑΠΡΑΤΤΩ είναι μια εντολή SQL, που σηματοδοτεί το επιτυχής ολοκλήρωση μιας συναλλαγής. Κάθε φορά που μια συναλλαγή ολοκληρώνει την εκτέλεση της χωρίς οποιαδήποτε διακοπή, οι τροποποιήσεις που γίνονται στη βάση δεδομένων, με τη συναλλαγή, καθίστανται μόνιμες. Αυτό σημαίνει ότι η βάση δεδομένων δεν μπορεί να ανακτήσει τις προηγούμενες καταστάσεις στις οποίες ήταν, πριν από την εκτέλεση της πρώτης δήλωσης, της συναλλαγής.


Η σύνταξη της δήλωσης COMMIT έχει ως εξής:

ΔΙΑΠΡΑΤΤΩ;

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

Ορισμός του ROLLBACK

Όπως COMMIT, ROLLBACK είναι επίσης μια εντολή SQL, και σηματοδοτεί ότι η συναλλαγή έχει δεν έχει ολοκληρωθεί επιτυχώς. Ως εκ τούτου, η συναλλαγή είναι αμβλύνθηκε για να αναιρέσετε τις αλλαγές που πραγματοποιήθηκαν από τη συναλλαγή. Μετά την εκτέλεση του ROLLBACK, δεν υπάρχουν τροποποιήσεις, οι οποίες γίνονται από την τρέχουσα συναλλαγή.


Η σύνταξη του ROLLBACK έχει ως εξής:

ROLLBACK;

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

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

Συμπέρασμα:

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