Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi COMMIT a ROLLBACK v SQL

COMMITand ROLLBACK, sú dve transakčné vyhlásenia, ktoré sa používajú na vykonanie alebo zrušenie transakcií. Transakcia môže mať sériu dopytov alebo môže mať aktualizácie, ktoré modifikujú databázu. Základný rozdiel medzi COMMIT a ROLLBACK spočíva v ich práci. Ak je transakcia úspešne vykonaná, potom príkaz COMMIT umožňuje, aby sa zmena vykonaná transakciou v databáze stala trvalou. Na druhej strane, ak sa transakcia z nejakého dôvodu úspešne spustí, príkaz ROLLBACK zruší všetky aktualizácie hneď od prvého výpisu aktuálnej transakcie.

Prediskutujeme rozdiel medzi príkazmi Commit a ROLLBACK v SQL pomocou porovnávacieho grafu zobrazeného nižšie.

Porovnávacia tabuľka

Základ pre porovnanieCOMMITROLLBACK
základnéCOMMIT validuje zmeny vykonané aktuálnou transakciou.ROLLBACK vymaže úpravy vykonané aktuálnou transakciou.
účinokPo vykonaní príkazu COMMIT transakcia nemôže byť ROLLBACK.Po vykonaní ROLLBACK databáza dosiahne svoj predchádzajúci stav, tj pred vykonaním prvého výpisu transakcie.
výskytCOMMIT sa vyskytuje, keď sa transakcia úspešne vykoná.ROLLBACK sa vyskytuje, keď je transakcia prerušená uprostred vykonania.
syntaxCOMMIT;ROLLBACK;

Definícia COMMIT

COMMIT je príkaz SQL, ktorý signalizuje úspešné dokončenie transakcie. Kedykoľvek transakcia dokončí jeho vykonanie bez prerušenia, zmeny vykonané v databáze, transakcia sa stáva trvalou. To znamená, že databáza nemôže získať späť svoje predchádzajúce stavy, v ktorých bola pred uskutočnením prvého vyhlásenia transakcie.

Syntax príkazu COMMIT je nasledovný:

COMMIT;

Po ukončení posledného výpisu transakcie sa transakcia čiastočne zaväzuje . Ďalej, protokoly obnovy zabezpečujú, že dokonca aj zlyhanie systému, databáza neumožní vykonať úpravy trvalé. Hneď ako je táto kontrola skontrolovaná, dosiahne sa bod transakcie transakcie a nakoniec transakcia vstúpi do záväzného stavu . Akonáhle transakcia vstúpi do záväzného stavu, nemožno ju vrátiť späť a začne nová transakcia.

Definícia ROLLBACK

Rovnako ako COMMIT, ROLLBACK je tiež príkaz SQL a signalizuje, že transakcia nebola úspešne dokončená. Preto je transakcia zrušená, aby sa vrátili zmeny vykonané transakciou. Po vykonaní ROLLBACK sa nezmieňujú žiadne úpravy vykonané súčasnou transakciou.

Syntax ROLLBACK je nasledovný:

ROLLBACK;

Transakcia ROLLBACK je nevyhnutná, ak sa vyskytne chyba počas vykonávania transakcie. Chyba môže byť zlyhanie systému, výpadok napájania, chyba vo výkazoch transakcií, zlyhanie systému. V prípade výpadku prúdu alebo zlyhania systému dôjde k opätovnému opätovnému spusteniu systému ROLLBACK. ROLLBACK sa môže vyskytnúť len vtedy, keď ešte nie je spustený COMMIT.

Kľúčové rozdiely medzi COMMIT a ROLLBACK v SQL

  1. Hlavným rozdielom medzi príkazmi COMMIT a ROLLBACK v SQL je, že vykonanie príkazu COMMIT spôsobí, že všetky zmeny vykonané súčasnou transakciou sa stanú trvalými. Na druhej strane vykonanie funkcie ROLLBACK vymaže všetky zmeny vykonané aktuálnou transakciou.
  2. Po vykonaní príkazu COMMIT nemôže byť zmena uskutočnená transakciou ROLLBACK. Po vykonaní príkazu ROLLBACK však databáza dosiahne svoj predchádzajúci stav.
  3. Program COMMIT sa spustí pri úspešnom vykonaní výkazu transakcií. ROLLBACK sa však vykoná, keď sa transakcia nevykoná úspešne.

záver:

Aby sa zabezpečilo, že zmeny vykonané transakciou sú natrvalo uložené v databáze, použite COMMIT po úspešnom dokončení transakcie. V prípade, že transakcia čelí akejkoľvek chybe počas vykonania a následne vráti zmeny vykonané transakciou, použije sa ROLLBACK.

Top