Cours SQL et MySQL · Module 10: Transactions et SQL avancé

Les transactions - tout ou rien

1 min de lecture
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. 1. Qu'est-ce qu'une transaction dans une base de données ?

  2. 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.