|
Rollback et SavePoint dans SQL:une distinction claire
«Rollback» et «SavePoint» sont des commandes SQL utilisées pour gérer les états de transaction, mais ils servent des objectifs différents.
Rollback:
* Objectif: Réinitialise la base de données à un état précédent en annulant toutes les modifications apportées dans la transaction actuelle.
* Scope: Rencontre tout depuis le début de la transaction.
* Exemple:
`` SQL
- démarrer une transaction
Commencer la transaction;
- Insérez certaines données
Insérer dans les clients (nom, e-mail) Valeurs («John Doe», «[email protected]»);
Insérer dans les commandes (CustomerId, OrderDate) Valeurs (1, «2023-10-27»);
- Rollback toutes les modifications apportées à la transaction
Transaction en arrière;
- Maintenant, la base de données est de retour à son état avant le début de la transaction.
`` '
SavePoint:
* Objectif: Marque un point spécifique dans une transaction pour les recul potentiels.
* Scope: Permet de revenir uniquement au point de sauvegarde défini, en préservant les modifications apportées après.
* Exemple:
`` SQL
- démarrer une transaction
Commencer la transaction;
- Insérez certaines données
Insérer dans les clients (nom, e-mail) Valeurs («Jane Doe», «[email protected]»);
- Créer un point de sauvegarde
Savepoint MySavePoint;
- insérer plus de données
Insérer dans les commandes (CustomerId, OrderDate) Valeurs (2, «2023-10-28»);
- Rollback au SavePoint
Transaction en arrière à MySavePoint;
- Maintenant, la base de données sera de retour à son état après le premier insert, en gardant la commande passée après le point de sauvegarde.
`` '
Résumé:
| Caractéristique | Rollback | SavePoint |
| --- | --- | --- |
| Objectif | Annuler toutes les modifications dans la transaction actuelle | Roll à un point spécifique dans la transaction |
| Scope | Transaction entière | Point spécifique |
| Résultat | La base de données revient à son état avant la transaction | La base de données revient à l'état au point de sauvegarde |
Différences clés:
* `` Rollback 'sans une sauvegarde annule toutes les modifications de la transaction.
* «Rollback» avec un SavePoint renvoie la base de données à l'état au point de sauvegarde, rejetant les modifications apportées après.
Quand utiliser lequel:
* Rollback: Utilisez lorsque vous souhaitez rejeter toutes les modifications dans une transaction, généralement en raison d'erreurs ou d'incohérences de données.
* SavePoint: Utilisez lorsque vous souhaitez revenir à un état spécifique dans une transaction, en préservant les modifications apportées après le point de sauvegarde. Ceci est utile pour des opérations complexes où vous devez annuler des parties spécifiques de la transaction sans affecter l'ensemble du processus.
|