ÎncepețiÎncepe gratuit

Niveluri de izolare și tranzacții

SERIALIZABLE este un nivel de izolare care face un instantaneu al înregistrării în momentul în care este emisă prima interogare sau instrucțiune de actualizare și returnează o eroare dacă datele sunt modificate în orice mod în afara tranzacției. Reține că tranzacția poate efectua și alte operații, cum ar fi declararea variabilelor, înainte de prima interogare.

Vei folosi din nou setul de date FFIEC pentru a lucra cu date în care variația anuală a depozitelor de economii RCON0352 este afectată de un offset semnificativ.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Pornește o tranzacție în modul SERIALIZABLE.
  • Actualizează toate înregistrările unde RCON0352 este mai mare de 100.000, aplicând o reducere de 50%.
  • COMMIT-ează tranzacția.
  • Selectează numărul înregistrărilor care au în continuare valoarea RCON0352 mai mare de 100.000.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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;
Editează și rulează codul