No, las transacciones no se revierten tan pronto como se produce un error. Pero puede estar utilizando una aplicación cliente que aplica esta política.
Por ejemplo, si está utilizando el cliente de línea de comandos mysql, normalmente deja de ejecutarse cuando ocurre un error y se cierra. Salir mientras una transacción está en curso hace que se revierta.
Cuando está escribiendo su propia aplicación, puede controlar la política de reversión, pero hay algunas excepciones:
- Salir (es decir, desconectarse de la base de datos) siempre revierte una transacción en curso
- Un interbloqueo o un tiempo de espera de bloqueo provoca implícitamente una reversión
Aparte de estas condiciones, si invoca un comando que genera un error, el error se devuelve normalmente y usted es libre de hacer lo que quiera, incluida la confirmación de la transacción de todos modos.