Не, транзакциите не се връщат обратно веднага щом възникне грешка. Но може да използвате клиентско приложение, което прилага тази политика.
Например, ако използвате клиента от командния ред на mysql, той обикновено спира да се изпълнява, когато възникне грешка и ще излезе. Излизането, докато транзакцията е в ход, води до нейното връщане назад.
Когато пишете свое собствено приложение, можете да контролирате правилата при връщане назад, но има някои изключения:
- Излизането (т.е. прекъсването на връзката с базата данни) винаги връща обратно текущата транзакция
- Заключване или изчакване за заключване имплицитно причинява връщане назад
Освен тези условия, ако извикате команда, която генерира грешка, грешката се връща както обикновено и вие сте свободни да правите каквото пожелаете, включително да извършите транзакцията така или иначе.