Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Rollback automático se COMMIT TRANSACTION não for alcançado


Não, as transações não são revertidas assim que ocorre um erro. Mas você pode estar usando um aplicativo cliente que aplica essa política.

Por exemplo, se você estiver usando o cliente de linha de comando mysql, ele normalmente parará de executar quando ocorrer um erro e será encerrado. Sair enquanto uma transação está em andamento faz com que ela seja revertida.

Ao escrever seu próprio aplicativo, você pode controlar a política de reversão, mas há algumas exceções:
  • Sair (ou seja, desconectar-se do banco de dados) sempre reverte uma transação em andamento
  • Um impasse ou tempo limite de espera de bloqueio causa implicitamente uma reversão

Fora essas condições, se você invocar um comando que gera um erro, o erro é retornado normalmente e você pode fazer o que quiser, inclusive confirmar a transação de qualquer maneira.