Nej, transaktioner rulles ikke tilbage, så snart der opstår en fejl. Men du bruger muligvis en klientapplikation, der anvender denne politik.
For eksempel, hvis du bruger mysql-kommandolinjeklienten, stopper den normalt med at udføre, når der opstår en fejl, og vil afslutte. Hvis du afslutter, mens en transaktion er i gang, bliver den rullet tilbage.
Når du skriver din egen ansøgning, kan du kontrollere politikken ved tilbagerulning, men der er nogle undtagelser:
- Hvis du afslutter (dvs. afbryde forbindelsen til databasen) rulles en igangværende transaktion altid tilbage
- En deadlock eller lock-vent timeout forårsager implicit en rollback
Bortset fra disse betingelser, hvis du påkalder en kommando, der genererer en fejl, returneres fejlen som normalt, og du er fri til at gøre, hvad du vil, herunder at udføre transaktionen alligevel.