sql / intermediate
Snippet
Explizite Isolationsstufen in Transaktionen festlegen
Transaktionsisolationsstufen steuern, wie gleichzeitig ablaufende Datenbanktransaktionen miteinander interagieren. Die Isolationsstufe SERIALIZABLE bietet das höchste Maß an Datensicherheit, indem sie Dirty Reads, Nicht-wiederholbare Reads und Phantom Reads verhindert.
snippet.sql
sql
1
2
3
4
5
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;BEGIN TRANSACTION;UPDATE accounts SET balance = balance - 500 WHERE account_id = 101;UPDATE accounts SET balance = balance + 500 WHERE account_id = 202;COMMIT;
Erklärung
1
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Definiert die Isolationsstufe für die bevorstehende Transaktion, um Nebenläufigkeitsfehler zu vermeiden.
2
BEGIN TRANSACTION;
Markiert den expliziten Startpunkt einer atomaren Datenbanktransaktion.
3
UPDATE accounts SET balance = balance - 500 WHERE account_id = 101;
Zieht den Betrag vom Quellkonto innerhalb des Transaktionsblocks ab.
4
UPDATE accounts SET balance = balance + 500 WHERE account_id = 202;
Schreibt den Betrag dem Zielkonto gut, um die finanzielle Konsistenz zu wahren.
5
COMMIT;
Wendet alle während der Transaktion vorgenommenen Änderungen dauerhaft auf die Datenbank an.