Utiliser un niveau d'isolement
Comme vous l'avez vu dans la vidéo, il est parfois important de pouvoir choisir un niveau d'isolement pour une transaction précise. Il est préférable d'utiliser START TRANSACTION (un alias de BEGIN TRANSACTION) pour bien indiquer que quelque chose diffère. Vous pouvez préciser un ISOLATION LEVEL au démarrage de la transaction.
Ici, nous allons utiliser REPEATABLE READ, qui nous protège contre les lectures sales, les lectures non reproductibles et les lectures fantômes. Dans les données de la FFEIC, RCON2210 correspond au champ des dépôts à vue et regroupe tous les comptes chèques en cours, les chèques émis par la banque et les crédits non comptabilisés. Ceux-ci peuvent représenter un passif pour une banque en cas de ruée sur les fonds, peu importe la raison. Trouvons toutes les banques ayant plus de 100 000 000 $ en dépôts à vue.
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Démarrez une transaction avec repeatable read.
- Sélectionnez tous les enregistrements où
RCON2210est supérieur à 100 000 000 $ en dépôts à vue. - Sélectionnez de nouveau tous les enregistrements où
RCON2210est toujours supérieur à 100 000 000 $ en dépôts à vue. - Validez la transaction avec
COMMIT.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- 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
___;