Рекомендуємо, 2024

Вибір Редакції

Різниця між COMMIT і ROLLBACK в SQL

COMMIT і ROLLBACK - це дві транзакційні операції, які використовуються, виконують або скасовують транзакції. Транзакція може мати послідовність запитів, або вона може мати оператори оновлення, які змінюють базу даних. Принципова різниця між COMMIT і ROLLBACK полягає в їх роботі. Якщо транзакція успішно виконана, оператор COMMIT дозволяє зміни, зроблені транзакцією в базі даних, стати постійними. З іншого боку, якщо транзакція з певної причини успішно виконується, то оператор ROLLBACK скасовує всі оновлення, безпосередньо з першої операції поточної транзакції.

Розглянемо різницю між операторами Commit і ROLLBACK в SQL за допомогою діаграми порівняння, показаної нижче.

Діаграма порівняння

Основа для порівнянняCOMMITROLLBACK
ОсновнийCOMMIT перевіряє зміни, внесені поточною транзакцією.ROLLBACK стирає зміни, внесені поточною транзакцією.
ЕфектПісля виконання оператора COMMIT транзакція не може бути ROLLBACK.Після того, як ROLLBACK виконується, база даних досягає свого попереднього стану, тобто до виконання першої операції транзакції.
ВиникненняCOMMIT відбувається, коли транзакція успішно виконується.ROLLBACK відбувається, коли транзакція перервана в середині виконання.
СинтаксисCOMMIT;ROLLBACK;

Визначення COMMIT

COMMIT - це оператор SQL, який сигналізує про успішне завершення транзакції. Всякий раз, коли транзакція завершує своє виконання без будь-якого переривання, зміни, внесені до бази даних, транзакцією стають постійними. Це означає, що база даних не може відновити свої попередні стани, в яких вона була, до виконання першої заяви, транзакції.

Синтаксис оператора COMMIT такий:

COMMIT;

Оскільки остання операція транзакції завершується, транзакція стає частково скоєною . Далі, протоколи відновлення гарантують, що навіть збій системи не вдасться створити базу даних, щоб зробити модифікації постійними. Як тільки це буде перевірено, точка фіксації транзакції досягла і, нарешті, транзакція входить у стан скоєння . Після того, як транзакція вступить у стан скоєння, вона не може бути повернута назад, і починається нова транзакція.

Визначення ROLLBACK

Подібно COMMIT, ROLLBACK також є оператором SQL, і він сигналізує, що транзакція не була успішно завершена. Отже, транзакція припиняється, щоб скасувати зміни, здійснені транзакцією. Після виконання ROLLBACK ніяких модифікацій, зроблених поточною транзакцією, не зберігається.

Синтаксис ROLLBACK є наступним:

ROLLBACK;

Транзакція ROLLBACK стає необхідною, якщо виникає помилка під час виконання транзакції. Помилка може бути відмовою системи, відключенням електроживлення, помилкою в операціях транзакцій, аварією системи. У разі виходу з ладу або збою системи ROLLBACK відбувається, коли система знову запускається. ROLLBACK може відбуватися, лише якщо COMMIT ще не виконано.

Ключові відмінності між COMMIT і ROLLBACK в SQL

  1. Основна відмінність операторів COMMIT і ROLLBACK від SQL полягає в тому, що виконання оператора COMMIT робить всі зміни, зроблені поточною транзакцією, постійними. З іншого боку, виконання ROLLBACK стирає всі модифікації, зроблені поточною транзакцією.
  2. Після того, як оператор COMMIT виконав модифікацію, зроблену транзакцією, не може бути ROLLBACK. Однак після виконання оператора ROLLBACK база даних досягає свого попереднього стану.
  3. COMMIT виконується після успішного виконання операцій транзакції. Однак ROLLBACK виконується, коли транзакція не виконується успішно.

Висновок:

Щоб переконатися, що зміни, внесені транзакцією, постійно зберігаються в базі даних, використовуйте COMMIT після успішного завершення транзакції. У випадку, якщо транзакція стикається з будь-якою помилкою під час виконання, то для скасування змін, здійснених транзакцією, використовується ROLLBACK.

Top