Aptarkime skirtumą tarp „Commit“ ir „ROLLBACK“ pareiškimų SQL, naudojant žemiau pateiktą palyginimo lentelę.
Palyginimo diagrama
Palyginimo pagrindas | COMMIT | GRĄŽINIMAS |
---|---|---|
Pagrindinis | COMMIT patvirtina dabartinio sandorio pakeitimus. | ROLLBACK ištrina dabartinio sandorio pakeitimus. |
Poveikis | Įgyvendinus COMMIT pareiškimą, sandoris negali būti ROLLBACK. | Kai ROLLBACK yra įvykdyta, duomenų bazė pasiekia ankstesnę būseną, ty prieš įvykdant pirmąjį sandorio pareiškimą. |
Įvykis | COMMIT įvyksta, kai sandoris sėkmingai įvykdomas. | ROLLBACK įvyksta, kai operacija nutraukiama vykdymo metu. |
Sintaksė | COMMIT; | ROLLBACK; |
COMMIT apibrėžimas
COMMIT yra SQL pranešimas, signalizuojantis apie sėkmingą sandorio užbaigimą. Kai sandoris užbaigiamas vykdant be jokios pertraukos, duomenų bazėje padaryti sandoriai tampa nuolatiniai. Tai reiškia, kad duomenų bazė negali atgauti savo ankstesnių valstybių, kuriose prieš įvykdant pirmąjį pareiškimą ji buvo įvykdyta.
COMMIT pareiškimo sintaksė yra tokia:
COMMIT;
Kadangi paskutinis sandorio pareiškimas baigiasi, sandoris tampa iš dalies įvykdytas . Be to, atkūrimo protokolai užtikrina, kad net sistemos gedimas, duomenų bazės negalėtų padaryti nuolatinių pakeitimų. Kai tik tai bus patikrinta, sandorio įvykdymo taškas pasiekė ir galiausiai sandoris įsijungia į įsipareigojimą . Kai sandoris patenka į priskirtą valstybę, jis negali būti atšauktas ir prasideda naujas sandoris.
ROLLBACK apibrėžimas
Kaip ir COMMIT, ROLLBACK taip pat yra SQL, o tai rodo, kad sandoris nebuvo sėkmingai užbaigtas. Todėl sandoris nutraukiamas, kad būtų atšaukti sandorio įvykdyti pakeitimai. Po ROLLBACK vykdymo, neišlieka jokių pakeitimų, atliktų pagal dabartinį sandorį.
ROLLBACK sintaksė yra tokia:
ROLLBACK;
Operacija ROLLBACK tampa būtina, jei įvykdant operaciją įvyksta klaida. Klaida gali būti sistemos gedimas, elektros energijos tiekimo nutraukimas, klaida sandorių ataskaitose, sistemos gedimas. Elektros energijos tiekimo sutrikimo arba sistemos gedimo atveju ROLLBACK atsiranda, kai sistema vėl pradeda veikti. ROLLBACK gali įvykti tik tuo atveju, jei COMMIT dar nėra įvykdytas.
Pagrindiniai skirtumai tarp COMMIT ir ROLLBACK SQL
- Pagrindinis skirtumas tarp „COMMIT“ ir „ROLLBACK“ teiginių „SQL“ yra tai, kad „COMMIT“ pareiškimo vykdymas daro visus dabartinio sandorio pakeitimus nuolatinius. Kita vertus, ROLLBACK vykdymas ištrina visus dabartinio sandorio pakeitimus.
- Kai COMMIT pareiškimas įvykdė sandorio padarytą pakeitimą, negali būti ROLLBACK. Tačiau, atlikus ROLLBACK pareiškimą, duomenų bazė pasiekia ankstesnę būseną.
- COMMIT bus įvykdytas sėkmingai įvykdžius operacijų ataskaitas. Tačiau „ROLLBACK“ vykdoma, kai sandoris nėra sėkmingai įvykdytas.
Išvada:
Siekiant užtikrinti, kad sandorio pakeitimai būtų visam laikui išsaugoti duomenų bazėje, naudokite COMMIT po sėkmingo sandorio. Tuo atveju, kai vykdant operaciją susiduriama su klaida, atšaukite operacijos atliktus pakeitimus, naudojamas ROLLBACK.