sql / intermediate
Snippet
Explizite Konfiguration des Transaktions-Isolationslevels
Die Konfiguration von Transaktions-Isolationsleveln steuert, wie Datenbanken den nebenläufigen Zugriff verwalten und Phänomene wie Dirty Reads, Non-Repeatable Reads und Phantom Reads verhindern. Das Level SERIALIZABLE garantiert die strikteste Isolierung, bei der parallele Transaktionen so wirken, als würden sie nacheinander ausgeführt.
snippet.sql
sql
1
2
3
4
5
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;START 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;
Setzt die höchste Isolationsstufe für die kommende Transaktion, um Dirty Reads, Non-Repeatable Reads und Phantom Reads zu verhindern.
2
START TRANSACTION;
Markiert den Beginn eines expliziten Transaktionsblocks.
3
UPDATE accounts SET balance = balance - 500 WHERE account_id = 101;
Zieht 500 vom Quellkonto im isolierten Transaktionskontext ab.
4
UPDATE accounts SET balance = balance + 500 WHERE account_id = 202;
Fügt dem Zielkonto 500 hinzu, um die finanzielle Integrität zu wahren.
5
COMMIT;
Speichert alle vorgenommenen Datenänderungen dauerhaft auf dem Datenbankdatenträger.