sql / intermediate
Snippet
Verwaltung partieller Rückabwicklungen mit Transaktions-Savepoints
Savepoints setzen Zwischenmarkierungen innerhalb einer laufenden Transaktion. Sie ermöglichen das gezielte Rückgängigmachen von Operationen nach dem Savepoint, ohne die gesamte Transaktion abzubrechen.
snippet.sql
sql
1
2
3
4
5
6
START TRANSACTION;INSERT INTO logs (log_message) VALUES ('Process started');SAVEPOINT before_update;UPDATE inventory SET stock = stock - 1 WHERE item_id = 99;ROLLBACK TO SAVEPOINT before_update;COMMIT;
Erklärung
1
START TRANSACTION;
Beginnt den Transaktionsblock.
2
INSERT INTO logs (log_message) VALUES ('Process started');
Fügt einen initialen Protokolleintrag ein, der nach dem Commit bestehen bleibt.
3
SAVEPOINT before_update;
Setzt einen benannten Savepoint-Musterpunkt namens before_update.
4
UPDATE inventory SET stock = stock - 1 WHERE item_id = 99;
Führt eine Reduzierung des Lagerbestands durch.
5
ROLLBACK TO SAVEPOINT before_update;
Macht die Lagerbestandsaktualisierung rückgängig, während der vorherige Protokolleintrag erhalten bleibt.
6
COMMIT;
Schließt die verbleibenden aktiven Operationen der Transaktion ab.