sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo determino si tengo escrituras no confirmadas en una transacción de MySQL?

Esta es una pregunta bastante interesante. No creo que haya una forma definitiva de determinar si emitir una confirmación hará o no una diferencia en la sesión que está ejecutando.

Puede ver las transacciones con show innodb status o mostrar el estado de innodb del motor pero no creo que pueda emitir compromiso en esas transacciones.

INNODB_TRX la tabla en information_schema mostrará las transacciones actualmente en ejecución:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html y de nuevo, no hay mucho que puedas hacer para forzarlos. Puede revertirlos eliminando el proceso asociado.

Si está ejecutando una transacción usando INICIAR TRANSACCIÓN en un procedimiento almacenado, puede manejar la confirmación y la reversión manualmente. Incluso puede establecer confirmación automática a 0 para controlar cuándo retroceder y cuándo confirmar.