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