Cours SQL et MySQL · Module 10: Transactions et SQL avancé
Les transactions - tout ou rien
Dans cette leçon3
Une transaction est un groupe d'opérations que la base de données traite comme un tout indivisible. Soit elles s'exécutent toutes, soit - si quelque chose tourne mal - aucune ne le fait.
Les trois sortilèges du Gardien
- START TRANSACTION (ou
BEGIN) - ouvre une transaction. À partir de ce moment, les changements sont « en attente ». - COMMIT - confirme. Tous les changements deviennent permanents et visibles pour les autres.
- ROLLBACK - annule. La base de données revient à l'état d'avant
START TRANSACTION, comme si rien ne s'était passé.
Exemple : un emprunt sécurisé
1START TRANSACTION;
2
3INSERT INTO wypozyczenia (ksiazka_id, czytelnik_id, data_wypozyczenia)
4VALUES (1, 1, '2026-06-22');
5
6UPDATE ksiazki SET dostepna = 0 WHERE id = 1;
7
8COMMIT;Ces deux opérations se produiront ensemble. Si la seconde échoue, le Gardien donne l'ordre :
1ROLLBACK;et même le premier INSERT est effacé. Le livre ne restera jamais dans un état intermédiaire.
Quand utiliser les transactions ?
Chaque fois que plusieurs changements doivent rester cohérents ensemble : un virement (retirer d'un compte, ajouter à un autre), un emprunt, la suppression d'un lecteur avec tout son historique. C'est ton bouclier contre l'incohérence.
Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. Qu'est-ce qu'une transaction dans une base de données ?
2. Quelle commande annule tous les changements effectués pendant une transaction en cours ?
Voici 2 des 4 questions de cette leçon. Réponds aux autres dans le jeu.
Tâches pratiques dans le jeu
- Tri horizontal
Ordonne sur une ligne la commande qui ouvre une transaction :
- Éditeur de code
Complète la transaction : ouvre-la avec START TRANSACTION, puis fais un INSERT dans la table wypozyczenia (ksiazka_id, czytelnik_id, data_wypozyczenia) avec les valeurs (1, 1, '2026-06-22'), puis un UPDATE de la table ksiazki qui met dostepna = 0 pour id = 1, et enfin confirme les changements avec COMMIT.
- Clique dans l'ordre
Clique sur les commandes de transaction dans l'ordre où on les utilise : ouvrir, écrire, valider :
- Éditeur de code
Écris une transaction : ouvre-la avec START TRANSACTION, puis fais un UPDATE de la table wypozyczenia qui met data_zwrotu = '2026-06-22' pour id = 1, puis un UPDATE de la table ksiazki qui met dostepna = 1 pour id = 1, et enfin confirme les changements avec COMMIT.