Vamos discutir a diferença entre as instruções Commit e ROLLBACK no SQL com a ajuda do gráfico de comparação mostrado abaixo.
Gráfico de comparação
Base para Comparação | COMMIT | ROLLBACK |
---|---|---|
Basic | COMMIT valida as modificações feitas pela transação atual. | ROLLBACK apaga as modificações feitas pela transação atual. |
Efeito | Após a execução da instrução COMMIT, a transação não pode ser ROLLBACK. | Depois que o ROLLBACK é executado, o banco de dados atinge seu estado anterior, isto é, antes da execução da primeira instrução da transação. |
Ocorrência | COMMIT ocorre quando a transação é executada com sucesso. | ROLLBACK ocorre quando a transação é abortada no meio da execução. |
Sintaxe | COMMIT; | ROLLBACK; |
Definição de COMMIT
COMMIT é uma instrução SQL, que sinaliza a conclusão bem- sucedida de uma transação. Sempre que uma transação completa sua execução sem qualquer interrupção, as modificações feitas no banco de dados, pela transação, se tornam permanentes. O que significa que o banco de dados não pode recuperar seus estados anteriores nos quais estava, antes da execução da primeira instrução, da transação.
A sintaxe da instrução COMMIT é a seguinte:
COMMIT;
Quando a última declaração da transação termina, a transação se torna parcialmente comprometida . Em seguida, os protocolos de recuperação garantem que, mesmo uma falha do sistema, não seria possível ao banco de dados, para tornar as modificações permanentes. Assim que isso é verificado, o ponto de confirmação da transação atingiu e, finalmente, a transação entra em um estado de confirmação . Quando a transação entra em um estado comprometido, ela não pode ser recuperada e uma nova transação é iniciada.
Definição de ROLLBACK
Como o COMMIT, o ROLLBACK também é uma instrução SQL e sinaliza que a transação não foi concluída com sucesso . Portanto, a transação é anulada para desfazer as alterações feitas pela transação. Após a execução do ROLLBACK, nenhuma modificação feita pela transação atual será retida.
A sintaxe do ROLLBACK é a seguinte:
ROLLBACK;
O ROLLBACK de transação se torna necessário se ocorrer um erro durante a execução de uma transação. O erro pode ser a falha do sistema, falta de energia, erro nas instruções de transação, falha do sistema. No caso de falta de energia ou falha do sistema, o ROLLBACK ocorre quando o sistema é reiniciado novamente. ROLLBACK pode ocorrer somente se COMMIT ainda não for executado.
Principais diferenças entre COMMIT e ROLLBACK no SQL
- A principal diferença entre as instruções COMMIT e ROLLBACK do SQL é que a execução da instrução COMMIT faz com que todas as modificações feitas pela transação atual se tornem permanentes. Por outro lado, a execução de ROLLBACK apaga todas as modificações feitas pela transação atual.
- Uma vez que a instrução COMMIT tenha executado, a modificação feita pela transação não pode ser ROLLBACK. No entanto, depois que a instrução ROLLBACK é executada, o banco de dados atinge seu estado anterior.
- COMMIT é executado na execução bem-sucedida das instruções da transação. No entanto, o ROLLBACK é executado quando a transação não é executada com sucesso.
Conclusão:
Para garantir que as alterações feitas pela transação sejam permanentemente salvas no banco de dados, use COMMIT após a conclusão bem-sucedida da transação. Caso a transação enfrente algum erro durante a execução e, em seguida, desfaça as alterações feitas pela transação, o ROLLBACK é usado.