sql >> Databasteknik >  >> RDS >> Mysql

Hur avgör jag om jag har oengagerade skrivningar i en MySQL-transaktion?

Det här är en ganska intressant fråga. Jag tror inte att det finns ett definitivt sätt att avgöra om utfärdandet av commit kommer att göra någon skillnad i sessionen du kör.

Du kan se transaktioner med show innodb status eller visa motorns innodb-status men jag tror inte att du kan utfärda bindningar för de transaktionerna.

INNODB_TRX Tabell i informationsschema kommer att visa transaktioner som körs för närvarande:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html och återigen finns det inte mycket du kan göra för att tvångsbegå dem. Du kan återställa dem genom att döda den associerade processen.

Om du kör en transaktion med STARTA TRANSAKTION i en lagrad procedur kan du hantera commit och rollback manuellt. Du kan till och med ställa in autocommit till 0 för att styra när den ska återställas och när den ska begås.




  1. Migrera en Oracle-databas till MySQL på AWS, del 2

  2. mysql kommandoraden returnerar körningstid?

  3. Hur ger man en unik begränsning till en kombination av kolumner i Oracle?

  4. EF Core 2.0 Identity - Lägger till navigeringsegenskaper