sql >> Database >  >> RDS >> Mysql

Hoe bepaal ik of ik niet-vastgelegde schrijfacties heb in een MySQL-transactie?

Dit is een vrij interessante vraag. Ik denk niet dat er een definitieve manier is om te bepalen of het uitgeven van een commit al dan niet een verschil zal maken in de sessie die je uitvoert.

U kunt transacties zien met show innodb status of toon engine innodb-status maar ik denk niet dat je een commit kunt geven aan die transacties.

INNODB_TRX tabel in information_schema toont momenteel uitgevoerde transacties:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html en nogmaals, je kunt niet veel doen om ze te forceren. Je kunt ze terugdraaien door het bijbehorende proces te beëindigen.

Als u een transactie uitvoert met START TRANSACTIE in een opgeslagen procedure kun je commit en rollback handmatig afhandelen. U kunt zelfs autocommit instellen naar 0 om te bepalen wanneer terug te draaien en wanneer vast te leggen.




  1. Is er een manier om herhalende berekeningen slechts één keer in sql te berekenen?

  2. Het niet-vastgelegde isolatieniveau lezen

  3. MySql:Selecteer een instructie met de IN-operator

  4. Synchrone mysql in Node.js