Priporočena, 2024

Izbira Urednika

Razlika med COMMIT in ROLLBACK v SQL

COMMITand ROLLBACK, sta dve transakcijski izjavi, ki sta uporabljeni, da naredita ali razveljavita transakcije. Transakcija ima lahko zaporedje poizvedb ali pa ima posodobitvene stavke, ki spreminjajo bazo podatkov. Temeljna razlika med COMMIT in ROLLBACK leži v njihovem delovanju. Če je transakcija uspešno izvršena, stavek COMMIT dovoljuje, da postane sprememba, ki jo izvede transakcija v bazi podatkov, trajna. Po drugi strani, če se transakcija zaradi nekega razloga uspešno izvrši, stavek ROLLBACK izniči vse posodobitve, takoj po prvem stavku trenutne transakcije.

Razpravljamo o razlikah med stavki Commit in ROLLBACK v SQL s pomočjo primerjalne tabele, prikazane spodaj.

Primerjalna tabela

Podlaga za primerjavoCOMMITROLLBACK
OsnovnoCOMMIT potrdi spremembe, ki jih je izvedla trenutna transakcija.ROLLBACK izbriše spremembe, ki jih je naredila trenutna transakcija.
UčinekPo 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.
PojavnostCOMMIT se zgodi, ko se transakcija uspešno izvede.ROLLBACK se pojavi, ko je transakcija prekinjena sredi izvršitve.
SintaksaCOMMIT;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

  1. 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.
  2. 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.
  3. 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.

Top