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

Como determino se tenho gravações não confirmadas em uma transação MySQL?


Essa é uma pergunta bem interessante. Eu não acho que exista uma maneira definitiva de determinar se a emissão de commit fará ou não diferença na sessão que você está executando.

Você pode ver transações com show innodb status ou mostrar o status do innodb do mecanismo mas não acho que você possa emitir commit nessas transações.

INNODB_TRX A tabela em information_schema mostrará as transações atualmente em execução:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html e novamente não há muito que você possa fazer para forçar o commit deles. Você pode revertê-los matando o processo associado.

Se você estiver executando uma transação usando START TRANSACTION em um procedimento armazenado, você pode manipular a confirmação e a reversão manualmente. Você pode até definir autocommit para 0 para controlar quando reverter e quando confirmar.