"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuándo no se revierte automáticamente una transacción en SQL?

¿Cuándo no se revierte automáticamente una transacción en SQL?

Publicado el 2024-11-07
Navegar:817

When is a Transaction Not Automatically Rolled Back in SQL?

Reversión automática de transacciones

La pregunta gira en torno al comportamiento de las transacciones cuando ocurre un error dentro de un bloque de declaraciones SQL encerradas por START TRANSACTION y COMPROMETER TRANSACCIÓN. El OP observa que cuando se encuentra un error de sintaxis antes de la declaración COMMIT TRANSACTION, la transacción se revierte automáticamente.

Mecanismo de reversión de transacciones

No, las transacciones no se revierten Regrese inmediatamente al encontrar un error. Sin embargo, ciertas aplicaciones cliente pueden adoptar políticas específicas para el manejo de errores.

Por ejemplo, en el cliente de línea de comandos mysql:

  • Por lo general, se produce un error durante la ejecución. detiene el proceso de ejecución y resulta en el cierre del cliente.
  • Salir mientras una transacción está en curso provoca automáticamente la reversión de la transacción.

Personalizar la política de reversión

Al crear sus propias aplicaciones, usted tiene control sobre las políticas de reversión de transacciones. Sin embargo, tenga en cuenta que existen excepciones en las que se aplica una reversión:

  1. Desconexión del cliente: Salir o desconectarse de la base de datos siempre inicia una reversión de la transacción.
  2. Interbloqueo/Tiempo de espera de bloqueo: cuando se produce un interbloqueo o un tiempo de espera de bloqueo, se produce una reversión implícita.

Para todos los demás escenarios, si se encuentra un error durante una transacción , se devuelve el error y el desarrollador tiene la opción de confirmar o descartar la transacción.

Declaración de liberación Este artículo se reimprime en: 1729746768 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3