Rollback und SavePoint in SQL:Eine klare Unterscheidung
Sowohl "rollback" als
Rollback:
* Zweck: Setzt die Datenbank in einen früheren Zustand zurück, indem Sie alle in der aktuellen Transaktion vorgenommenen Änderungen rückgängig machen.
* Umfang: Nach dem Beginn der Transaktion alles rückgängig.
* Beispiel:
`` `SQL
- Starten Sie eine Transaktion
Transaktion beginnen;
- Fügen Sie einige Daten ein
Einfügen in Kunden (Name, E -Mail) Werte ('John Doe', '[email protected]');
In Bestellungen (CustomerID, OrderDate) einfügen (1, '2023-10-27');
- Rollen Sie alle Änderungen in der Transaktion
Rollback -Transaktion;
- Jetzt ist die Datenbank zurück in ihren Zustand, bevor die Transaktion beginnt.
`` `
SavePoint:
* Zweck: Markiert einen bestimmten Punkt innerhalb einer Transaktion für mögliche Rollbacks.
* Umfang: Ermöglicht das Rollen nur auf den definierten SavePoint, wobei Änderungen vorgenommen werden.
* Beispiel:
`` `SQL
- Starten Sie eine Transaktion
Transaktion beginnen;
- Fügen Sie einige Daten ein
In Kunden einfügen (Name, E -Mail) Werte ('Jane Doe', '[email protected]');
- Erstellen Sie einen Savepoint
SavePoint Mysavointpoint;
- Weitere Daten einfügen
In Bestellungen (CustomerID, OrderDate) einfügen (2, '2023-10-28');
- Rollback zum Savepoint
Rollback -Transaktion zu Mysavoint;
- Jetzt wird die Datenbank nach dem ersten Einfügen wieder in ihren Status sein und die Reihenfolge nach dem SavePoint aufgestellt.
`` `
Zusammenfassung:
| Feature | Rollback | SavePoint |
| --- | --- | --- |
| Zweck | Alle Änderungen in der aktuellen Transaktion | rückgängig machen | Rollback zu einem bestimmten Punkt innerhalb der Transaktion |
| Scope | Gesamte Transaktion | Spezifischer Punkt |
| Ergebnis | Die Datenbank kehrt vor der Transaktion in ihren Zustand zurück | Die Datenbank kehrt zum Status am SavePoint | zurück
Schlüsselunterschiede:
* `Rollback` ohne einen SavePoint alle Änderungen in der Transaktion rückgängig zu machen.
* `Rollback" mit einem SavePoint weist die Datenbank am Status am SavePoint zurück und verworfen Sie die danach vorgenommenen Änderungen.
Wann verwenden Sie welche:
* Rollback: Verwenden Sie, wenn Sie alle Änderungen innerhalb einer Transaktion verwerfen möchten, normalerweise aufgrund von Fehlern oder Datenkonsistenzen.
* SavePoint: Verwenden Sie, wenn Sie innerhalb einer Transaktion in einen bestimmten Zustand rollen möchten und Änderungen erhalten, die nach dem SavePoint vorgenommen wurden. Dies ist nützlich für komplexe Operationen, bei denen Sie bestimmte Teile der Transaktion rückgängig machen müssen, ohne den gesamten Prozess zu beeinflussen.