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