IniziaInizia gratis

Livelli di isolamento e transazioni

SERIALIZABLE è un livello di isolamento che scatta un'istantanea del record quando viene eseguita la prima query o istruzione di aggiornamento e genera un errore se i dati vengono modificati in qualsiasi modo al di fuori della transazione. Nota che la transazione può svolgere altro lavoro, come dichiarare variabili, prima della prima query.

Userai di nuovo l'insieme di dati FFIEC per lavorare con dati in cui la variazione annuale dei depositi di risparmio RCON0352 è influenzata da un grande scostamento.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Avvia una transazione in modalità SERIALIZABLE.
  • Aggiorna tutti i record in cui RCON0352 è maggiore di 100.000 con una riduzione del 50%.
  • Esegui il COMMIT della transazione.
  • Seleziona il conteggio dei record che hanno ancora RCON0352 maggiore di 100.000.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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;
Modifica ed esegui il codice