Uso di un livello di isolamento
Come visto nel video, a volte è importante poter scegliere un livello di isolamento per una singola transazione. Per farlo, è meglio usare START TRANSACTION (alias di BEGIN TRANSACTION) così è chiaro che c’è qualcosa di diverso. Puoi specificare un ISOLATION LEVEL quando avvii la transazione.
Qui useremo REPEATABLE READ, che ci protegge da dirty read, nonrepeatable read e phantom read. Nei dati FFEIC, RCON2210 è il campo dei demand deposits e tiene traccia di tutti i conti correnti aperti, gli assegni emessi dalla banca e i crediti non registrati. Possono rappresentare una passività per una banca in caso di corsa agli sportelli per qualsiasi motivo. Troviamo tutte le banche con oltre $100,000,000 di demand deposits.
Questo esercizio fa parte del corso
Transazioni e gestione degli errori in PostgreSQL
Istruzioni dell'esercizio
- Avvia una transazione con repeatable read.
- Seleziona tutti i record con
RCON2210superiore a $100,000,000 nei demand deposits. - Seleziona tutti i record con
RCON2210ancora superiore a $100,000,000 nei demand deposits. - Esegui il commit della transazione.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- Create a new transaction with an isolation level of repeatable read
___ TRANSACTION ___ LEVEL ___ ___;
-- Count of records over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;
-- Count of records still over 100000000
SELECT ___(RCON2210)
FROM ffiec_reci
WHERE ___ > ___;
-- Commit the transaction
___;