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

Автор: Laura McKinney
Дата Створення: 1 Квітень 2021
Дата Оновлення: 12 Травень 2024
Anonim
SQL Server. Cross apply, grouping sets та віконні функції
Відеоролик: SQL Server. Cross apply, grouping sets та віконні функції

Зміст


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

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

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняКОМІТЕТПОВЕРНЕННЯ
ОсновніCOMMIT підтверджує зміни, внесені поточною транзакцією.ROLLBACK видаляє зміни, внесені поточною транзакцією.
ЕфектПісля виконання оператора COMMIT, транзакція не може бути ВЗАЄМО.Після виконання ROLLBACK база даних досягає свого попереднього стану, тобто перед виконанням першого оператора транзакції.
ВиникненняCOMMIT виникає, коли транзакція успішно виконується.ROLLBACK виникає, коли транзакція переривається в середині виконання.
СинтаксисКОМІТЕТ;РОЗКЛАД;

Визначення COMMIT

КОМІТЕТ є оператором SQL, який сигналізує про успішний завершення транзакції. Щоразу, коли транзакція завершує своє виконання без будь-якого перерви, зміни, внесені до бази даних, транзакції стають постійними. Що означає, що база даних не може відновити свої попередні стани, в яких вона була перед виконанням першої заяви операції.


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

КОМІТЕТ;

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

Визначення ROLLBACK

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

Синтаксис ROLLBACK такий:


РОЗКЛАД;

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

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

Висновок:

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