sql / expert
Snippet
Granulare Fehlerbehebung mit Transaktions-Savepoints
Savepoints ermöglichen es, einen spezifischen Teil einer Transaktion rückgängig zu machen, ohne die gesamte Sequenz abzubrechen. Dies ist entscheidend für komplexe Workflows, bei denen einige Schritte optional sind oder eine spezifische Fehlerbehandlung erfordern.
snippet.sql
1
2
3
4
5
6
7
8
9
BEGIN;INSERT INTO audit_log (event) VALUES ('Complex Update Started');SAVEPOINT post_audit;UPDATE account_balances SET amount = amount - 500 WHERE id = 1;-- If this fails, we only roll back to the savepoint-- ROLLBACK TO SAVEPOINT post_audit;COMMIT;
Erklärung
1
SAVEPOINT post_audit;
Markiert einen Punkt in der Transaktion, zu dem wir später zurückkehren können, falls ein Fehler auftritt.
2
ROLLBACK TO SAVEPOINT post_audit;
Setzt alle nach dem Savepoint vorgenommenen Änderungen zurück, während das vorhergehende INSERT aktiv bleibt.