Apspriedīsim atšķirību starp Commit un ROLLBACK paziņojumiem SQL ar zemāk redzamās salīdzināšanas diagrammas palīdzību.
Salīdzinājuma diagramma
Salīdzinājuma pamats | COMMIT | ROLLBACK |
---|---|---|
Pamata | COMMIT apstiprina pašreizējā darījuma veiktās izmaiņas. | ROLLBACK dzēš pašreizējā darījuma veiktās izmaiņas. |
Ietekme | Pēc COMMIT paziņojuma izpildes darījums nevar būt ROLLBACK. | Kad ROLLBACK ir izpildīts, datubāze sasniedz savu iepriekšējo stāvokli, ti, pirms pirmā darījuma izpildes. |
Notikums | COMMIT notiek, kad darījums tiek veiksmīgi izpildīts. | ROLLBACK notiek, kad darījums tiek pārtraukts izpildes laikā. |
Sintakse | COMMIT; | ROLLBACK; |
COMMIT definīcija
COMMIT ir SQL paziņojums, kas apliecina veiksmīgu darījuma pabeigšanu. Ja darījums tiek pabeigts bez pārtraukuma, datubāzē veiktās izmaiņas darījumā kļūst pastāvīgas. Tas nozīmē, ka datubāze nevar atgūt savas iepriekšējās valstis, kurās pirms pirmā paziņojuma izpildes darījums tika veikts.
COMMIT paziņojuma sintakse ir šāda:
COMMIT;
Tā kā darījuma pēdējais paziņojums beidzas, darījums kļūst daļēji izdarīts . Pēc tam atkopšanas protokoli nodrošina, ka pat sistēmas kļūme, nevarētu izveidot datu bāzi, padarīt modifikācijas pastāvīgas. Tiklīdz tas ir pārbaudīts, darījuma izpildes punkts ir sasniegts, un, visbeidzot, darījums tiek noslēgts ar saistītu valsti . Pēc tam, kad darījums ir noslēgts, tas nevar tikt atcelts, un sākas jauns darījums.
ROLLBACK definīcija
Tāpat kā COMMIT, ROLLBACK ir arī SQL, un tas norāda, ka darījums nav veiksmīgi pabeigts. Tādējādi darījums tiek pārtraukts, lai atsauktu darījuma veiktās izmaiņas. Pēc ROLLBACK izpildes, pašreizējie darījumi neveic nekādas izmaiņas.
ROLLBACK sintakse ir šāda:
ROLLBACK;
Darījums ROLLBACK kļūst nepieciešams, ja darījuma izpildes laikā rodas kļūda. Kļūda var būt sistēmas kļūme, strāvas padeves pārtraukums, kļūda darījumu paziņojumos, sistēmas crash. Strāvas padeves pārtraukuma vai sistēmas avārijas gadījumā ROLLBACK notiek, kad sistēma atkal tiek restartēta. ROLLBACK var notikt tikai tad, ja COMMIT vēl nav izpildīts.
Galvenās atšķirības starp COMMIT un ROLLBACK SQL
- Galvenā atšķirība starp COMMIT un ROLLBACK SQL paziņojumiem ir tāda, ka COMMIT paziņojuma izpilde padara visas pašreizējā darījuma veiktās izmaiņas pastāvīgas. No otras puses, ROLLBACK izpilde izdzēš visus pašreizējā darījuma veiktos grozījumus.
- Kad COMMIT paziņojums ir izpildījis darījuma veikto modifikāciju, nevar būt ROLLBACK. Tomēr, kad ir izpildīts ROLLBACK paziņojums, datu bāze sasniedz savu iepriekšējo stāvokli.
- COMMIT tiek izpildīts veiksmīgi izpildot darījumu pārskatus. Tomēr ROLLBACK tiek izpildīts, kad darījums netiek veiksmīgi izpildīts.
Secinājums:
Lai nodrošinātu, ka darījuma veiktās izmaiņas tiek pastāvīgi saglabātas datu bāzē, pēc darījuma veiksmīgas pabeigšanas izmantojiet COMMIT. Gadījumā, ja darījums saskaras ar kādu kļūdu, izpildot, tad atsaukt darījuma izdarītās izmaiņas, tiek izmantots ROLLBACK.