Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Start een transactie in SERIALIZABLE-modus.
  • Update alle records waar RCON0352 groter is dan 100.000 met een reductie van 50%.
  • COMMIT de transactie.
  • Selecteer de count van de records die nog steeds een RCON0352 groter 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;
Code bewerken en uitvoeren