Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment déterminer si j'ai des écritures non validées dans une transaction MySQL ?

C'est une question assez intéressante. Je ne pense pas qu'il existe un moyen précis de déterminer si l'émission d'un commit fera ou non une différence dans la session que vous exécutez.

Vous pouvez voir les transactions avec show innodb status ou afficher l'état innodb du moteur mais je ne pense pas que vous puissiez émettre un commit sur ces transactions.

INNODB_TRX table dans information_schema affichera les transactions en cours d'exécution :https ://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html et encore une fois, vous ne pouvez pas faire grand-chose pour les forcer. Vous pouvez les annuler en supprimant le processus associé.

Si vous exécutez une transaction en utilisant START TRANSACTION dans une procédure stockée, vous pouvez gérer la validation et la restauration manuellement. Vous pouvez même définir la validation automatique à 0 pour contrôler quand revenir en arrière et quand valider.