![](http://gadget-info.com/img/difference-between/567/difference-between-commit.jpg)
Omówmy różnicę między instrukcjami Commit i ROLLBACK w SQL za pomocą tabeli porównawczej pokazanej poniżej.
Wykres porównania
Podstawa do porównania | POPEŁNIĆ | ROLLBACK |
---|---|---|
Podstawowy | COMMIT sprawdza poprawności dokonane przez bieżącą transakcję. | ROLLBACK kasuje modyfikacje dokonane przez bieżącą transakcję. |
Efekt | Po wykonaniu instrukcji COMMIT transakcja nie może być ROLLBACK. | Po wykonaniu ROLLBACK baza danych osiąga swój poprzedni stan, tj. Przed wykonaniem pierwszego wyciągu transakcji. |
Występowanie | COMMIT występuje, gdy transakcja zostanie pomyślnie wykonana. | ROLLBACK występuje, gdy transakcja zostanie przerwana w trakcie wykonywania. |
Składnia | POPEŁNIĆ; | ROLLBACK; |
Definicja COMMIT
COMMIT to instrukcja SQL, która sygnalizuje pomyślne zakończenie transakcji. Za każdym razem, gdy transakcja kończy wykonywanie bez przerw, modyfikacje wprowadzone do bazy danych przez transakcję stają się trwałe. Oznacza to, że baza danych nie może odzyskać swoich poprzednich stanów, w których była, przed wykonaniem pierwszego wyciągu, z transakcji.
Składnia polecenia COMMIT jest następująca:
POPEŁNIĆ;
Po zakończeniu ostatniego wyciągu transakcji transakcja zostaje częściowo zatwierdzona. Następnie protokoły odzyskiwania zapewniają, że nawet awaria systemu nie uniemożliwi bazy danych, aby modyfikacje stały się trwałe. Jak tylko zostanie zaznaczone, punkt zatwierdzenia transakcji zostanie osiągnięty i transakcja przejdzie w stan zatwierdzony . Gdy transakcja przejdzie do stanu zatwierdzonego, nie można jej wycofać i rozpoczyna się nowa transakcja.
Definicja ROLLBACK
Podobnie jak COMMIT, ROLLBACK jest również instrukcją SQL i sygnalizuje, że transakcja nie zakończyła się pomyślnie . Dlatego transakcja jest przerywana, aby cofnąć zmiany dokonane przez transakcję. Po wykonaniu ROLLBACK nie zachodzi żadna modyfikacja wykonana przez bieżącą transakcję.
Składnia ROLLBACK jest następująca:
ROLLBACK;
ROLLBACK transakcji staje się konieczny, jeśli wystąpi błąd podczas wykonywania transakcji. Błąd może polegać na awarii systemu, zaniku zasilania, błędzie w instrukcjach transakcji, awarii systemu. W przypadku awarii zasilania lub awarii systemu, ROLLBACK występuje, gdy system zostanie ponownie uruchomiony. ROLLBACK może wystąpić tylko wtedy, gdy COMMIT nie jest jeszcze wykonany.
Kluczowe różnice między COMMIT i ROLLBACK w SQL
- Główna różnica między instrukcjami COMMIT i ROLLBACK SQL polega na tym, że wykonanie instrukcji COMMIT powoduje, że wszystkie modyfikacje dokonane przez bieżącą transakcję stają się trwałe. Z drugiej strony wykonanie ROLLBACK usuwa wszystkie modyfikacje dokonane przez bieżącą transakcję.
- Po wykonaniu polecenia COMMIT modyfikacja dokonana przez transakcję nie może być ROLLBACK. Jednak po wykonaniu instrukcji ROLLBACK baza danych osiąga swój poprzedni stan.
- COMMIT zostaje wykonany po pomyślnym wykonaniu transakcji. Jednak ROLLBACK jest wykonywany, gdy transakcja nie zostanie pomyślnie wykonana.
Wniosek:
Aby upewnić się, że zmiany dokonane przez transakcję są trwale zapisane w bazie danych, użyj polecenia COMMIT po pomyślnym zakończeniu transakcji. W przypadku, gdy transakcja napotka na błąd podczas wykonywania, a następnie cofnie zmiany dokonane przez transakcję, użyty zostanie ROLLBACK.