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ÁCHAT | ROLLBACK |
---|---|---|
Základní | COMMIT ověřuje změny provedené aktuální transakcí. | ROLLBACK vymaže změny provedené aktuální transakcí. |
Účinek | Po 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ýskyt | COMMIT dochází při úspěšném provedení transakce. | ROLLBACK nastane, když je transakce přerušena uprostřed provádění. |
Syntax | SPÁ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
- 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í.
- 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.
- 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.