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.