Razpravljamo o razlikah med stavki Commit in ROLLBACK v SQL s pomočjo primerjalne tabele, prikazane spodaj.
Primerjalna tabela
Podlaga za primerjavo | COMMIT | ROLLBACK |
---|---|---|
Osnovno | COMMIT potrdi spremembe, ki jih je izvedla trenutna transakcija. | ROLLBACK izbriše spremembe, ki jih je naredila trenutna transakcija. |
Učinek | Po izvršitvi stavka COMMIT transakcija ne more biti ROLLBACK. | Ko se izvede ROLLBACK, baza podatkov doseže svoje prejšnje stanje, tj. Pred izvedbo prvega stavka transakcije. |
Pojavnost | COMMIT se zgodi, ko se transakcija uspešno izvede. | ROLLBACK se pojavi, ko je transakcija prekinjena sredi izvršitve. |
Sintaksa | COMMIT; | ROLLBACK; |
Opredelitev COMMIT
COMMIT je stavek SQL, ki signalizira uspešen zaključek transakcije. Kadarkoli transakcija konča svojo izvedbo brez prekinitev, spremembe, ki jih opravi baza podatkov, s transakcijo postanejo trajne. To pomeni, da baza podatkov ne more povrniti prejšnjih stanj, v katerih je bila pred izvedbo prve izjave transakcija.
Skladnja stavka COMMIT je naslednja:
COMMIT;
Ker se zadnji obračun transakcije konča, postane transakcija delno zavezana . Nadalje, obnovitveni protokoli zagotavljajo, da celo sistemska napaka ne bi uspela z bazo podatkov, da bi bile spremembe trajne. Takoj, ko je to potrjeno, je točka prevzema transakcije dosegla in končno transakcija vstopi v prevzeto stanje . Ko transakcija vstopi v prevzeto stanje, je ni mogoče obnoviti in začne se nova transakcija.
Opredelitev ROLLBACK
Podobno kot COMMIT ROLLBACK je tudi stavek SQL, ki signalizira, da transakcija ni bila uspešno zaključena. Zato je transakcija prekinjena, da se razveljavijo spremembe, ki jih opravi transakcija. Po izvedbi ROLLBACK-a se ne zadrži nobena sprememba, ki bi jo opravila trenutna transakcija.
Skladnja ROLLBACK je naslednja:
ROLLBACK;
Transakcija ROLLBACK postane potrebna, če pride do napake med izvajanjem transakcije. Napaka je lahko napaka sistema, izpad električne energije, napaka v transakcijskih stavkih, sistemska nesreča. V primeru izpada električnega toka ali zrušitve sistema pride do ponovnega zagona sistema ROLLBACK. ROLLBACK se lahko pojavi samo, če COMMIT še ni izveden.
Ključne razlike med COMMIT in ROLLBACK v SQL
- Glavna razlika med stavkoma COMMIT in ROLLBACK SQL je, da izvršitev stavka COMMIT naredi vse spremembe, ki jih je naredila trenutna transakcija, trajne. Na drugi strani pa izvajanje ROLLBACK-a izbriše vse spremembe, ki jih je izvedla trenutna transakcija.
- Ko je izjava COMMIT izvršila, sprememba, ki jo je naredila transakcija, ne more biti ROLLBACK. Vendar, ko je izveden stavek ROLLBACK, baza podatkov doseže svoje prejšnje stanje.
- COMMIT se izvrši ob uspešni izvedbi transakcijskih stavkov. Vendar se ROLLBACK izvede, ko se transakcija ne izvede uspešno.
Sklep:
Da bi zagotovili, da se spremembe, ki jih je naredila transakcija, trajno shranijo v bazo podatkov, uporabite COMMIT po uspešnem zaključku transakcije. V primeru, da se transakcija sooča s kakršnokoli napako med izvajanjem, nato pa za razveljavitev sprememb, ki jih izvede transakcija, se uporabi ROLLBACK.