Gérer les transactions et les accès concurrents

1. Définition

Dans la terminologie des bases de données relationnelles, une transaction est un ensemble d’ordres de mise à jour qui forme un tout indissociable du point de vue de la logique applicative. Les ordres de mise à jour d’une transaction ne peuvent être définitivement enregistrés dans la base de données que s’ils se sont tous exécutés sans erreur ; si un des ordres de mise à jour échoue, toutes les modifications déjà effectuées dans la transaction doivent être annulées. À la fin d’une transaction, la base de données est toujours dans un état cohérent du point de vue de la logique applicative.

Transaction

À titre d’exemple, considérons une transaction de virement bancaire qui serait constituée de trois ordres de mise à jour :

  • un premier UPDATE pour débiter le premier compte ;

  • un deuxième UPDATE pour créditer le deuxième compte ;

  • un INSERT pour enregistrer l’opération dans un journal.

Si le deuxième UPDATE échoue pour une raison ou pour une autre, il faut annuler le premier UPDATE et ne pas effectuer l’ordre INSERT.

2. Gérer les transactions

Par défaut, MySQL fonctionne dans un mode validation automatique (option AUTOCOMMIT égale à 1) : chaque modification effectuée est immédiatement...

couv_RI58PH8MY.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Réunir le résultat de plusieurs requêtes
Suivant
Effectuer des recherches à l’aide des expressions rationnelles