sql >> Databáze >  >> RDS >> Mysql

Automatické vrácení zpět, pokud není dosaženo COMMIT TRANSACTION

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.



  1. Jak shrnout časové pole v SQL Server

  2. Chyba serveru SQL - HRESULT E_FAIL byla vrácena z volání komponenty COM

  3. Proč selhává vytvoření cizího klíče v Laravelu 5.8?

  4. Jak nainstalovat pyodbc 64-bit?