sql >> Database >  >> RDS >> Mysql

Automatisch terugdraaien als TRANSACTIE COMMIT niet wordt bereikt

Nee, transacties worden niet teruggedraaid zodra er een fout optreedt. Maar misschien gebruikt u een client-applicatie die dit beleid toepast.

Als u bijvoorbeeld de mysql-opdrachtregelclient gebruikt, stopt deze normaal gesproken met uitvoeren wanneer er een fout optreedt en stopt deze. Als u stopt terwijl een transactie aan de gang is, wordt deze teruggedraaid.

Wanneer u uw eigen toepassing schrijft, kunt u het beleid voor terugdraaien beheren, maar er zijn enkele uitzonderingen:

  • Afsluiten (d.w.z. de verbinding met de database verbreken) zet een lopende transactie altijd terug
  • Een deadlock of lock-wait time-out veroorzaakt impliciet een rollback

Afgezien van deze voorwaarden, als u een opdracht aanroept die een fout genereert, wordt de fout normaal geretourneerd en bent u vrij om te doen wat u wilt, inclusief het toch uitvoeren van de transactie.



  1. Hoe json-gegevens in een tabel in te voegen?

  2. newid() binnen sql-serverfunctie

  3. Visual Basic voor toepassingen in Microsoft Access

  4. DATEDIFF() of BETWEEN voor datumbereiken in SQL-query's