top of page

ROLLBACK

La commande ROLLBACK en SQL fait partie du Transaction Control Language, qui permet de gérer des transactions. Une transaction est un groupe d’instructions, commençant par ‘BEGIN TRANSACTION ;’ et se terminant, soit par un ‘ROLLBACK’, soit par un ‘COMMIT’. L’instruction COMMIT permet de valider tous les changements faits sur la base de données dans la transaction, et n’est à effectuer qu’en l’absence d’erreur. En cas d’erreur, un ROLLBACK permet de revenir à l’état antérieur à la transaction.


Exemple d’utilisation :


Imaginons une base de données ‘gest_fact’, qu’une entreprise a créée pour stocker les données relatives aux factures qu’elle a émises : la liste des produits commercialisés par l’entreprise, la liste des factures émises par l’entreprise et le détail de chaque ligne de facture. ‘Gest_fact’ est constituée de trois tables : ‘produit’, ‘facture’ et ‘ligne_facture’. On souhaite maintenant ajouter une ligne à une facture, à l’aide d’une transaction. Cependant, on se rend compte au moment de l’exécution du code que la référence du produit renseignée n’est pas présente dans la table ‘produit’. On annule donc la transaction depuis le début, à l’aide d’un ROLLBACK :


BEGIN TRANSACTION;

INSERT INTO ligne_facture (nom_produit, num_facture, quantite, num_lf, statut)

VALUES ('P74', 'F010', 2, 1, 'vente directe');

-- Vérification de l'existence du produit

IF NOT EXISTS (SELECT 1 FROM produit WHERE nom_produit = ‘P74’)

BEGIN

  PRINT 'Erreur : Produit inexistant.';

  ROLLBACK;  --Si le produit n’existe pas, on ROLLBACK

  RETURN;

END;

-- Si le produit existe, on COMMIT

COMMIT;


Voici le résultat du code :


_


Nos formations sur https://www.apprendresql.com/ 


Voir autres : ALTER TABLE, CREATE TABLE, DROP TABLE, AND, AS, AUTO_INCREMENT, AVG(), BETWEEN, COUNT(), CROSS JOIN, DELETE, DISTINCT, FOREIGN KEY, FULL JOIN, GROUP BY, HAVING, IN, INNER JOIN, INSERT, INTERSECT, IS NULL, LEFT JOIN, LIKE, MAX(), MERGE, MIN(), NATURAL JOIN, OR, ORDER BY, PRIMARY KEY, RIGHT JOIN, SELECT, SUM(), UNION, UPDATE, WITH ROLLUP, GRANT, REVOKE, BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT


bottom of page