Să discutăm diferența dintre instrucțiunile Commit și ROLLBACK din SQL cu ajutorul graficului de comparație prezentat mai jos.
Diagramă de comparație
Bazele comparației | COMMIT | ROLLBACK |
---|---|---|
De bază | COMMIT validează modificările efectuate de tranzacția curentă. | ROLLBACK șterge modificările efectuate de tranzacția curentă. |
Efect | După executarea instrucțiunii COMMIT, tranzacția nu poate fi ROLLBACK. | Odată ce ROLLBACK este executat, baza de date atinge starea sa anterioară, adică înainte de executarea primei instrucțiuni a tranzacției. |
Apariţie | COMMIT apare atunci când tranzacția este executată cu succes. | ROLLBACK apare atunci când tranzacția este întreruptă în mijlocul executării. |
Sintaxă | COMMIT; | ROLLBACK; |
Definiția COMMIT
COMMIT este o instrucțiune SQL, care semnalează finalizarea cu succes a unei tranzacții. Ori de câte ori o tranzacție completează executarea acesteia fără nicio întrerupere, modificările efectuate în baza de date, prin tranzacție devin permanente. Ceea ce înseamnă că baza de date nu își poate recupera starea anterioară în care a fost, înainte de executarea primei instrucțiuni, a tranzacției.
Sintaxa instrucțiunii COMMIT este după cum urmează:
COMMIT;
După ce ultima declarație a tranzacției se termină, tranzacția devine parțial angajată . Apoi, protocoalele de recuperare asigură că chiar și o eșecare a sistemului nu ar fi putut baza în baza de date, pentru a face modificările permanente. Imediat ce acest lucru este verificat, punctul de comitet al tranzacției a atins și, în final, tranzacția intră într-un stat angajat . Odată ce tranzacția intră într-o stare de angajament, nu poate fi revocată și începe o nouă tranzacție.
Definiția ROLLBACK
Ca și COMMIT, ROLLBACK este, de asemenea, o instrucțiune SQL și semnalează că tranzacția nu a fost finalizată cu succes . Prin urmare, tranzacția este anulată pentru a anula modificările efectuate de tranzacție. După executarea ROLLBACK, nu se modifică nici o modificare efectuată de tranzacția curentă.
Sintaxa ROLLBACK este după cum urmează:
ROLLBACK;
Tranzacția ROLLBACK devine necesară în cazul în care apare o eroare în timpul executării unei tranzacții. Eroarea poate fi eroarea sistemului, întreruperea alimentării, eroarea în declarațiile de tranzacție, prăbușirea sistemului. În cazul unei căderi de tensiune sau a unui accident de sistem, ROLLBACK se produce când sistemul repornește din nou. ROLLBACK poate apărea numai dacă COMMIT nu este încă executat.
Diferențe cheie între COMMIT și ROLLBACK în SQL
- Principala diferență dintre instrucțiunile SQL și SQL este că executarea instrucțiunii COMMIT face ca toate modificările făcute de tranzacția curentă să devină permanente. Pe celelalte mâini, executarea ROLLBACK șterge toate modificările efectuate de tranzacția curentă.
- Odată ce declarația COMMIT a executat modificarea efectuată de tranzacție, nu poate fi ROLLBACK. Cu toate acestea, odată ce instrucțiunea ROLLBACK este executată, baza de date atinge starea sa anterioară.
- COMMIT este executat cu privire la executarea cu succes a declaraț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 o eroare în timpul execuției, apoi pentru a anula modificările efectuate de tranzacție, se utilizează ROLLBACK.