Diferența dintre COMMIT și ROLLBACK în SQL

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 9 Mai 2024
Anonim
Diferența dintre COMMIT și ROLLBACK în SQL - Tehnologie
Diferența dintre COMMIT și ROLLBACK în SQL - Tehnologie

Conţinut


COMMITand ROLLBACK, sunt cele două declarații tranzacționale care sunt obișnuite, efectuate sau anulate tranzacțiile. O tranzacție poate avea o secvență de interogări sau poate avea instrucțiunile de actualizare care modifică baza de date. Diferența fundamentală dintre COMMIT și ROLLBACK constă în funcționarea lor. Dacă tranzacția este executată cu succes, atunci COMMIT statement permite modificarea efectuată de tranzacția din baza de date să devină permanentă. Pe de altă parte, dacă tranzacția din anumite motive se execută cu succes, atunci ROLLBACK instrucțiunea anulează toate actualizările, chiar de la prima declarație a tranzacției curente.

Să discutăm diferența dintre instrucțiunile Commit și ROLLBACK din SQL cu ajutorul graficului de comparație prezentat mai jos.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieCOMMITROLLBACK
De bazăCOMMIT validează modificările efectuate de tranzacția curentă.ROLLBACK șterge modificările efectuate de tranzacția curentă.
EfectDupă executarea declarației COMMIT, tranzacția nu poate fi ROLLBACK.Odată ce baza de date ROLLBACK este executată ajunge la starea sa anterioară, adică înainte de executarea primei declarații a tranzacției.
ApariţieCOMMIT apare atunci când tranzacția este executată cu succes.ROLLBACK apare atunci când tranzacția este anulată la mijlocul execuției.
SintaxăCOMMIT;ROLLBACK;

Definiția COMMIT

COMMIT este o declarație SQL, acel semnal de succes finalizarea unei tranzacții. Ori de câte ori o tranzacție își finalizează execuția fără întrerupere, modificările aduse bazei de date, prin tranzacție devin permanente. Ceea ce înseamnă că baza de date nu își poate recâștiga stările anterioare în care a fost, înainte de executarea primei declarații, a tranzacției.


Sintaxa declarației COMMIT este următoarea:

COMMIT;

Pe măsură ce ultima declarație a tranzacției se încheie, tranzacția devine parțial angajat. În continuare, protocoale de recuperare asigurați-vă că, chiar și o defecțiune a sistemului, nu ar putea incapaciza baza de date, pentru a face modificările permanente. De îndată ce se verifică acest lucru, punct de comitere a tranzacției a ajuns și în final tranzacția intră în stat angajat. Odată ce tranzacția intră într-o stare angajată, aceasta nu poate fi returnată și începe o nouă tranzacție.

Definiția ROLLBACK

Ca și COMMIT, ROLLBACK este de asemenea o declarație SQL și semnalează că tranzacția are nu a fost finalizat cu succes. Prin urmare, tranzacția este avortat pentru a anula modificările efectuate de tranzacție. După executarea ROLLBACK, nu se mai păstrează modificări efectuate de tranzacția curentă.


Sintaxa lui ROLLBACK este următoarea:

ROLLBACK;

Tranzacția ROLLBACK devine necesară dacă apare o eroare în timpul executării unei tranzacții. Eroarea poate fi defecțiunea sistemului, întreruperea curentului, eroarea în declarațiile tranzacțiilor, blocarea sistemului. În cazul unei întreruperi a energiei sau a unei blocări a sistemului, ROLLBACK apare când sistemul repornește din nou. ROLLBACK poate apărea numai dacă COMMIT nu este încă executat.

  1. Principala diferență între instrucțiunile COMMIT și ROLLBACK ale SQL este că execuția instrucțiunii COMMIT face ca toate modificările făcute de tranzacția curentă să devină permanente. Pe de altă parte, execuția ROLLBACK șterge toate modificările efectuate de tranzacția curentă.
  2. Odată ce declarația COMMIT a executat modificarea efectuată de tranzacție nu poate fi ROLLBACK. Cu toate acestea, odată executată instrucțiunea ROLLBACK baza de date ajunge la starea anterioară.
  3. COMMIT este executat la executarea cu succes a situațiilor de tranzacție. Cu toate acestea, ROLLBACK este executat atunci când tranzacția nu este executată cu succes.

Concluzie:

Pentru a vă asigura că modificările efectuate de tranzacție sunt salvate permanent în baza de date, utilizați COMMIT după finalizarea cu succes a tranzacției. În cazul în care tranzacția se confruntă cu vreo eroare în timpul executării, atunci pentru a anula modificările efectuate de tranzacție, se utilizează ROLLBACK.