Ne, transakce nejsou vráceny zpět, jakmile dojde k chybě. Možná však používáte klientskou aplikaci, která tuto zásadu uplatňuje.
Pokud například používáte klienta příkazového řádku mysql, normálně se zastaví, když dojde k chybě, a ukončí se. Ukončení v průběhu transakce způsobí, že bude vrácena zpět.
Když píšete svou vlastní aplikaci, můžete ovládat zásady vrácení zpět, ale existují výjimky:
- Ukončení (tj. odpojení od databáze) vždy vrátí probíhající transakci zpět
- Zablokování nebo časový limit čekání na uzamčení implicitně způsobuje vrácení zpět
Kromě těchto podmínek platí, že pokud zavoláte příkaz, který generuje chybu, chyba se vrátí jako obvykle a vy můžete dělat, co chcete, včetně potvrzení transakce.