Isolationsstufen und Transaktionen
SERIALIZABLE ist eine Isolationsstufe, die beim ersten Ausführen einer Abfrage- oder Update-Anweisung einen Schnappschuss des Datensatzes erstellt und einen Fehler auslöst, wenn die Daten außerhalb der Transaktion in irgendeiner Weise verändert werden. Beachte, dass die Transaktion vor der ersten Abfrage auch andere Arbeiten ausführen kann, zum Beispiel Variablen deklarieren.
Du arbeitest wieder mit dem FFIEC-Datensatz und bearbeitest Daten, bei denen die jährliche Veränderung der Spareinlagen RCON0352 durch einen großen Offset beeinflusst ist.
Diese Übung ist Teil des Kurses
Transaktionen und Fehlerbehandlung in PostgreSQL
Anleitung zur Übung
- Starte eine Transaktion im Modus
SERIALIZABLE. - Aktualisiere alle Datensätze, bei denen
RCON0352größer als 100.000 ist, mit einer Reduzierung um 50 %. COMMITdie Transaktion.- Wähle die Anzahl der Datensätze aus, bei denen
RCON0352weiterhin größer als 100.000 ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- Create a new transaction with a serializiable isolation level
___ TRANSACTION ISOLATION LEVEL ___;
-- Update records with a 50% reduction if greater than 100000
___ ffiec_reci
SET ___ = ___ * 0.5
WHERE RCON0352 > 100000;
-- Commit the transaction
___;
-- Select a count of records still over 100000
SELECT ___(RCON0352)
FROM ___
WHERE RCON0352 > 100000;