Soovitatav, 2024

Toimetaja Valik

Erinevus COMMITi ja ROLLBACKi vahel SQLis

COMMITand ROLLBACK on kaks tehinguteatist, mida kasutatakse tehingute tegemiseks või nende tühistamiseks. Tehingul võib olla päringute jada või andmebaasi muutvad värskenduse avaldused. Põhiline erinevus COMMITi ja ROLLBACKi vahel seisneb nende töös. Kui tehing on edukalt täidetud, lubab COMMIT- avaldus muuta andmebaasis tehtud tehingu muutust püsivaks. Teisest küljest, kui mõnel põhjusel toimuv tehing toimib edukalt, tühistab ROLLBACK avaldus kõik värskendused, kohe alates käesoleva tehingu esimesest avaldusest.

Arutagem erinevust Commit ja ROLLBACK avalduste vahel SQLis allpool toodud võrdluskaardi abil.

Võrdluskaart

Võrdluse alusCOMMITROLLBACK
PõhilineCOMMIT kinnitab praeguse tehinguga tehtud muudatused.ROLLBACK kustutab praeguse tehinguga tehtud muudatused.
MõjuPärast COMMITi avalduse täitmist ei saa tehing olla ROLLBACK.Kui ROLLBACK on täidetud, jõuab andmebaas oma eelmise olekuni, st enne tehingu esimese avalduse täitmist.
EsinemineCOMMIT toimub siis, kui tehing on edukalt sooritatud.ROLLBACK toimub siis, kui tehing katkestatakse täitmise ajal.
SüntaksiCOMMIT;ROLLBACK;

COMMITi määratlus

COMMIT on SQL-i avaldus, mis näitab tehingu edukat lõpetamist. Kui tehing lõpetatakse ilma katkestusteta, muutuvad tehingusse tehtud muudatused püsivaks. See tähendab, et andmebaas ei saa tagasi saada oma varasemaid riike, kus see oli enne esimese avalduse täitmist tehingu toimumise ajal.

COMMITi avalduse süntaks on järgmine:

COMMIT;

Kuna tehingu viimane avaldus lõpeb tehinguga osaliselt . Järgmisena tagavad taaskasutusprotokollid, et isegi süsteemi rike, ei suuda andmebaasi muuta, muutusi püsivaks. Niipea, kui see on kontrollitud, on tehingu toimepunkt jõudnud ja tehing jõuab lõpuks pühendunud riiki . Kui tehing siseneb pühendunud olekusse, ei saa seda tagasi pöörata ja algab uus tehing.

ROLLBACKi määratlus

Nagu COMMIT, on ROLLBACK ka SQL-i avaldus ja see näitab, et tehing pole edukalt lõpule viidud . Seega katkestatakse tehing tehinguga tehtud muudatuste tühistamiseks. Pärast ROLLBACKi täitmist ei säilita praeguse tehinguga tehtud muudatusi.

ROLLBACKi süntaks on järgmine:

ROLLBACK;

Tehingu ROLLBACK muutub vajalikuks, kui tehingu toimumise ajal ilmneb viga. Viga võib olla süsteemi tõrge, elektrikatkestus, vea tehingu väljavõtetes, süsteemiõnnetus. Toitekatkestuse või süsteemi krahhi korral toimub ROLLBACK, kui süsteem uuesti taaskäivitub. ROLLBACK võib toimuda ainult siis, kui COMMIT pole veel teostatud.

Peamised erinevused COMMITi ja ROLLBACKi vahel SQLis

  1. SQL-i COMMIT ja ROLLBACK avalduste peamine erinevus on see, et COMMIT-i avalduse täitmine muudab kõik praeguse tehingu tehtud muudatused püsivaks. Teisest küljest kustutab ROLLBACK täitmine kõik praeguse tehinguga tehtud muudatused.
  2. Kui COMMITi avaldus on teostanud, ei saa tehingu tehtud muudatus olla ROLLBACK. Kui aga ROLLBACKi avaldus on täidetud, jõuab andmebaas oma eelmise olekuni.
  3. COMMIT saab tehingute aruannete edukast täitmisest. Kuid ROLLBACK käivitatakse siis, kui tehing ei ole edukalt sooritatud.

Järeldus:

Tagamaks, et tehingu tehtud muudatused andmebaasi jäädavalt salvestatakse, kasuta COMMIT-i pärast tehingu edukat lõpetamist. Juhul, kui tehingu teostamisel tekib viga, siis tehingu tehtud muudatuste tühistamiseks kasutatakse ROLLBACK.

Top