Sobes.tech
Middle

Quelles commandes de gestion des transactions connaissez-vous?

sobes.tech IA

Réponse de l'IA

BEGIN (peut être implicite), COMMIT, ROLLBACK.

  • BEGIN : Démarre une nouvelle transaction. Est optionnel pour la première commande DML dans une session, car la transaction commencera implicitement.

    BEGIN TRANSACTION;
    
  • COMMIT : Enregistre toutes les modifications effectuées dans la transaction en cours et la termine.

    COMMIT;
    
  • ROLLBACK : Annule toutes les modifications effectuées dans la transaction en cours et la termine.

    ROLLBACK;
    

Certaines bases de données supportent également :

  • SAVEPOINT : Définit un point de sauvegarde dans la transaction en cours. Permet de revenir à ce point sans annuler toute la transaction.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT : Annule les modifications jusqu'au point de sauvegarde spécifié.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT : Supprime le point de sauvegarde.

    RELEASE SAVEPOINT my_savepoint;
    

Exemple de séquence de commandes :

BEGIN; -- commencer la transaction

INSERT INTO users (name) VALUES ('Alice'); -- effectuer une opération

SAVEPOINT before_update; -- définir un point de sauvegarde

UPDATE products SET price = price * 1.1 WHERE id = 1; -- effectuer une autre opération

-- Si quelque chose ne va pas avec la mise à jour, revenir au point de sauvegarde
-- ROLLBACK TO SAVEPOINT before_update;

-- Si tout va bien, valider les changements
COMMIT; -- terminer la transaction et enregistrer les changements

-- Si vous souhaitez annuler toute la transaction après BEGIN
-- ROLLBACK;

Comprendre ces commandes est essentiel pour assurer l'intégrité des données dans les applications utilisant des bases de données relationnelles.