n'apparaît jamais. Tant que la totalité des étapes n'a pas été réalisée avec succès, les données restent dans leur état initial.
Nos transactions permettent-elles d'assurer la cohérence des données ?
Oui, les changements de données ne sont validés qu'une fois que toutes les étapes ont été exécutées. De l'extérieur de la
transaction, le moment entre les deux étapes d'un virement n'est jamais visible.
I pour Isolation
Chaque transaction doit être isolée, donc ne pas interagir avec une autre transaction.
Nos transactions sont-elles isolées ?
Test
Dans votre client MySQL, exécutez les requêtes suivantes (ne commitez pas) pour modifier le pere_id du rat Bibo :
Copiez-collez tout le bloc dans votre client MySQL
Code : SQL
START TRANSACTION; -- On ouvre une transaction
UPDATE Animal
-- On modifie Bibo
SET pere_id = 73
WHERE espece_id = 5 AND nom = 'Bibo';
SELECT id, nom, commentaires, pere_id, mere_id
FROM Animal
WHERE espece_id = 5;
À nouveau, ouvrez une deuxième session, tout en laissant la première ouverte (démarrez un deuxième client SQL et connectezvous à votre base de données).
Exécutez les requêtes suivantes, pour modifier les commentaires de Bibo.
À nouveau, prenez bien tout le bloc d'un coup, vous suivrez plus facilement les explications qui suivent.
Code : SQL
START TRANSACTION;
-- On ouvre une transaction
SELECT id, nom, commentaires, pere_id, mere_id
FROM Animal
WHERE espece_id = 5;
UPDATE Animal
-- On modifie la perruche Bibo
SET commentaires = 'Agressif'
WHERE espece_id = 5 AND nom = 'Bibo';
SELECT id, nom, commentaires, pere_id, mere_id
FROM Animal
WHERE espece_id = 5;
Partie 5 : Sécuriser et automatiser ses actions
229/414
www.openclassrooms.com
Précédent

- 229/413

Suivant