Bases des bases de données
Sur une table Compte, on démarre une transaction et l'on exécute un UPDATE qui retire 300 du solde du compte A et un UPDATE qui ajoute 300 au solde du compte B. On exécute ensuite ROLLBACK au lieu de COMMIT. Qu'advient-il de la table Compte ?
- ASeul l'ajout au compte B est annulé ; le retrait du compte A subsiste
- BLes 2 UPDATE sont annulés, et la table revient à son état d'avant le début de la transaction
- CComme les UPDATE ont déjà été exécutés, aucun n'est annulé
Afficher la réponse et l'explication
Réponse : B. Les 2 UPDATE sont annulés, et la table revient à son état d'avant le début de la transaction
Une transaction est un mécanisme qui traite une série d'opérations sur une base de données comme une seule unité. Les mises à jour effectuées dans une transaction deviennent définitives à l'exécution de COMMIT, et sont toutes annulées à l'exécution de ROLLBACK, les données revenant à leur état d'avant le début de la transaction. Dans cet exemple, le retrait du compte A et l'ajout au compte B sont tous deux annulés, et les 2 soldes restent inchangés. Si une erreur survient au milieu d'un virement, un ROLLBACK garantit qu'il ne reste pas d'état intermédiaire où un seul compte aurait été mis à jour. Pour n'annuler qu'une partie du travail, on peut marquer un point avec SAVEPOINT et y revenir avec ROLLBACK TO SAVEPOINT.
Continuer : 9 autres questions sur Bases des bases de données