Mysql
 sql >> Base de données >  >> RDS >> Mysql

Annulation automatique si COMMIT TRANSACTION n'est pas atteint

Non, les transactions ne sont pas annulées dès qu'une erreur se produit. Mais vous utilisez peut-être une application cliente qui applique cette politique.

Par exemple, si vous utilisez le client de ligne de commande mysql, il s'arrête normalement lorsqu'une erreur se produit et se ferme. Quitter alors qu'une transaction est en cours entraîne son annulation.

Lorsque vous écrivez votre propre application, vous pouvez contrôler la politique de restauration, mais il existe quelques exceptions :

  • Quitter (c'est-à-dire se déconnecter de la base de données) annule toujours une transaction en cours
  • Un interblocage ou un délai d'attente de verrouillage entraîne implicitement une annulation

En dehors de ces conditions, si vous appelez une commande qui génère une erreur, l'erreur est renvoyée normalement et vous êtes libre de faire ce que vous voulez, y compris de valider la transaction quand même.