Isolatieniveaus en transacties
SERIALIZABLE is een isolatieniveau dat een snapshot van het record neemt zodra de eerste query- of update-instructie wordt uitgevoerd, en een fout geeft als de gegevens op welke manier dan ook buiten de transactie worden gewijzigd. Let op: de transactie kan vóór de eerste query ander werk doen, zoals variabelen declareren.
Je gebruikt opnieuw de FFIEC-gegevensset om te werken met data waarbij de jaarlijkse verandering in spaardeposito’s RCON0352 is beïnvloed door een grote offset.
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in PostgreSQL
Oefeninstructies
- Start een transactie in
SERIALIZABLE-modus. - Update alle records waar
RCON0352groter is dan 100.000 met een reductie van 50%. COMMITde transactie.- Selecteer de count van de records die nog steeds een
RCON0352groter dan 100.000 hebben.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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;