ROLLBACK; -- pour annuler les requêtes
Exemples de transactions en mode non-autocommit
Si ce n'est pas déjà fait, changez le mode par défaut de MySQL grâce à la commande que nous venons de voir.
Première expérience : annulation des requêtes.
Exécutez ces quelques requêtes :
Code : SQL
INSERT INTO Animal (nom, espece_id, date_naissance, sexe)
VALUES ('Baba', 5, '2012-02-13 15:45:00', 'F');
INSERT INTO Animal (nom, espece_id, date_naissance, sexe)
VALUES ('Bibo', 5, '2012-02-13 15:48:00', 'M');
INSERT INTO Animal (nom, espece_id, date_naissance, sexe)
VALUES ('Buba', 5, '2012-02-13 18:32:00', 'F'); -- Insertion de 3
rats bruns
UPDATE Espece
SET prix = 20
WHERE id = 5; -- Les rats bruns coûtent maintenant 20 euros au lieu
de 10
Faites maintenant un SELECT sur les tables Espece et Animal.
Code : SQL
SELECT *
FROM Animal
WHERE espece_id = 5;
SELECT *
FROM Espece
WHERE id = 5;
Les changements faits sont bien visibles. Les rats bruns valent maintenant 20 euros, et nos trois nouvelles bestioles ont bien été
insérées. Cependant, un simple rollback va annuler ces changements.
Code : SQL
ROLLBACK;
Nos rats coûtent à nouveau 10 euros et Baba, Bibo et Buba ont disparu.
Deuxième expérience : Interruption de la transaction.
Exécutez à nouveau les trois requêtes INSERT et la requête UPDATE.
Ensuite, quittez votre client MySQL (fermez simplement la fenêtre, ou tapez quit ou exit ).
Reconnectez-vous et vérifiez vos données : les rats valent 10 euros, et Baba, Bibo et Buba n'existent pas. Les changements n'ont
pas été commités, c'est comme s'il ne s'était rien passé !
Partie 5 : Sécuriser et automatiser ses actions
223/414
www.openclassrooms.com
Précédent

- 223/413

Suivant