Le mode autocommit est de nouveau activé ! Le fait de faire SET autocommit = 0; n'est valable que pour la
session courante. Or, en ouvrant une nouvelle connexion, vous avez créé une nouvelle session. Désactivez donc à
nouveau ce mode.
Troisième expérience : validation et annulation.
Exécutez la séquence de requêtes suivante :
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
COMMIT;
UPDATE Espece
SET prix = 20
WHERE id = 5; -- Les rats valent 20 euros
ROLLBACK;
Si vous n'avez pas oublié de réactiver le mode non-autocommit, vous avez maintenant trois nouveaux rats bruns (les requêtes
d'insertion ayant été validées), et ils ne valent toujours que 10 euros chacun (la modification de l'espèce ayant été annulée).
Quatrième expérience : visibilité des changements non-commités.
Exécutez la requête suivante :
Code : SQL
UPDATE Animal
SET commentaires = 'Queue coupée'
WHERE nom = 'Bibo' AND espece_id = 5;
Ensuite, tout en laissant ce client MySQL ouvert, ouvrez-en un deuxième. Connectez-vous comme d'habitude à la base de
données elevage. Vous avez maintenant deux sessions ouvertes, connectées à votre base de données.
Sélectionnez les rats bruns.
Code : SQL
SELECT id, sexe, nom, commentaires, espece_id, race_id
FROM Animal
WHERE espece_id = 5;
id sexe nom commentaires espece_id race_id
69 F
Baba NULL
5
NULL
70 M
Bibo NULL
5
NULL
71 F
Buba NULL
5
NULL
Partie 5 : Sécuriser et automatiser ses actions
224/414
www.openclassrooms.com
session courante. Or, en ouvrant une nouvelle connexion, vous avez créé une nouvelle session. Désactivez donc à
nouveau ce mode.
Troisième expérience : validation et annulation.
Exécutez la séquence de requêtes suivante :
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
COMMIT;
UPDATE Espece
SET prix = 20
WHERE id = 5; -- Les rats valent 20 euros
ROLLBACK;
Si vous n'avez pas oublié de réactiver le mode non-autocommit, vous avez maintenant trois nouveaux rats bruns (les requêtes
d'insertion ayant été validées), et ils ne valent toujours que 10 euros chacun (la modification de l'espèce ayant été annulée).
Quatrième expérience : visibilité des changements non-commités.
Exécutez la requête suivante :
Code : SQL
UPDATE Animal
SET commentaires = 'Queue coupée'
WHERE nom = 'Bibo' AND espece_id = 5;
Ensuite, tout en laissant ce client MySQL ouvert, ouvrez-en un deuxième. Connectez-vous comme d'habitude à la base de
données elevage. Vous avez maintenant deux sessions ouvertes, connectées à votre base de données.
Sélectionnez les rats bruns.
Code : SQL
SELECT id, sexe, nom, commentaires, espece_id, race_id
FROM Animal
WHERE espece_id = 5;
id sexe nom commentaires espece_id race_id
69 F
Baba NULL
5
NULL
70 M
Bibo NULL
5
NULL
71 F
Buba NULL
5
NULL
Partie 5 : Sécuriser et automatiser ses actions
224/414
www.openclassrooms.com
