Doporučená, 2024

Redakce Choice

Rozdíl mezi COMMIT a ROLLBACK v SQL

COMMIT a ROLLBACK jsou dva transakční příkazy, které jsou používány, prováděny nebo vráceny transakce. Transakce může mít sled dotazů nebo může mít příkazy aktualizace, které upravují databázi. Základní rozdíl mezi COMMIT a ROLLBACK spočívá v jejich práci. Pokud je transakce úspěšně provedena, pak příkaz COMMIT umožňuje, aby se změna provedená transakcí v databázi stala trvalou. Na druhou stranu, pokud se transakce z nějakého důvodu úspěšně provede, pak příkaz ROLLBACK zruší všechny aktualizace, a to hned od prvního výpisu aktuální transakce.

Pojďme diskutovat o rozdílu mezi příkazy Commit a ROLLBACK v SQL pomocí srovnávací tabulky uvedené níže.

Srovnávací graf

Základ pro porovnáníSPÁCHATROLLBACK
ZákladníCOMMIT ověřuje změny provedené aktuální transakcí.ROLLBACK vymaže změny provedené aktuální transakcí.
ÚčinekPo provedení příkazu COMMIT transakce nemůže být ROLLBACK.Jakmile je ROLLBACK spuštěn, databáze dosáhne svého předchozího stavu, tj. Před provedením prvního výpisu transakce.
VýskytCOMMIT dochází při úspěšném provedení transakce.ROLLBACK nastane, když je transakce přerušena uprostřed provádění.
SyntaxSPÁCHAT;ROLLBACK;

Definice COMMIT

COMMIT je příkaz SQL, který signalizuje úspěšné dokončení transakce. Kdykoliv transakce dokončí své provedení bez jakéhokoliv přerušení, změny provedené v databázi transakcí se stanou trvalými. Což znamená, že databáze nemůže znovu získat své předchozí stavy, ve kterých byla před provedením prvního výpisu transakce.

Syntaxe příkazu COMMIT je následující:

SPÁCHAT;

Jako poslední výpis transakce se transakce stane částečně závaznou . Dále, protokoly obnovy zajistí, že i selhání systému, nebude schopen databáze, aby změny trvalé. Jakmile je tato možnost zaškrtnuta, dosáhl bod odevzdání transakce a nakonec transakce vstoupí do stavu, v němž byla potvrzena . Jakmile transakce vstoupí do potvrzeného stavu, nemůže být vrácena zpět a začíná nová transakce.

Definice ROLLBACK

Podobně jako COMMIT je ROLLBACK také příkazem SQL a signalizuje, že transakce nebyla úspěšně dokončena. Transakce je proto přerušena, aby bylo možné vrátit změny provedené transakcí. Po provedení ROLLBACK nezůstanou zachovány žádné změny provedené aktuální transakcí.

Syntaxe ROLLBACK je následující:

ROLLBACK;

Transakce ROLLBACK je nutná, pokud dojde k chybě během provádění transakce. Chyba může být selhání systému, výpadek napájení, chyba v výpisech transakcí, zhroucení systému. V případě výpadku napájení nebo havárie systému dojde k opětovnému spuštění systému ROLLBACK. ROLLBACK může nastat pouze v případě, že COMMIT ještě není proveden.

Rozdíly klíčů mezi COMMIT a ROLLBACK v SQL

  1. Hlavní rozdíl mezi příkazy COMMIT a ROLLBACK SQL je, že provedení příkazu COMMIT provede všechny změny provedené aktuální transakcí jako trvalé. Na druhé straně provedení ROLLBACK vymaže všechny změny provedené aktuální transakcí.
  2. Jakmile příkaz COMMIT provedl změnu provedenou transakcí nemůže být ROLLBACK. Po provedení příkazu ROLLBACK však databáze dosáhne svého předchozího stavu.
  3. COMMIT se provede po úspěšném provedení výpisů transakcí. ROLLBACK je však proveden při úspěšném provedení transakce.

Závěr:

Aby bylo zajištěno, že změny provedené transakcí jsou trvale uloženy v databázi, použijte COMMIT po úspěšném dokončení transakce. V případě, že transakce čelí jakékoli chybě při provádění, pak se použijí změny ROLLBACK.

Top