sql / intermediate
Snippet
Behandlung von Teilfehlern mit Transaktions-Savepoints
Savepoints ermöglichen eine feingliedrige Rollback-Steuerung innerhalb einer Transaktion. Durch das Setzen eines Punkts in einer aktiven Transaktion können Sie spätere Ausführungsfehler rückgängig machen, ohne zuvor erfolgreiche Anweisungen zu verwerfen.
snippet.sql
sql
1
2
3
4
5
6
START TRANSACTION;INSERT INTO orders (order_id, customer_id) VALUES (101, 55);SAVEPOINT item_insertion;INSERT INTO order_items (order_id, item_id, quantity) VALUES (101, 999, 1);ROLLBACK TO SAVEPOINT item_insertion;COMMIT;
Erklärung
1
START TRANSACTION;
Startet die Grenze einer atomaren Datenbanktransaktion.
2
SAVEPOINT item_insertion;
Erstellt eine benannte Wiederherstellungsmarkierung nach dem Einfügen der Hauptbestellung.
3
ROLLBACK TO SAVEPOINT item_insertion;
Macht Änderungen nach dem Savepoint rückgängig, behält jedoch den primären Bestelldatensatz bei.
4
COMMIT;
Speichert die verbleibenden, nicht zurückgesetzten Änderungen dauerhaft in der Datenbank.