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
Instrucțiuni pentru exercițiu
- Pornește o tranzacție în modul
SERIALIZABLE. - Actualizează toate înregistrările unde
RCON0352este 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
RCON0352mai 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;