CommencezCommencez gratuitement

Niveaux d'isolement et transactions

SERIALIZABLE est un niveau d'isolement qui prend un instantané de l'enregistrement au moment où la première requête ou instruction de mise à jour est lancée, et génère une erreur si les données sont modifiées de quelque façon que ce soit à l'extérieur de la transaction. Notez que la transaction peut effectuer d'autres opérations, comme déclarer des variables, avant la première requête.

Vous allez réutiliser l'ensemble de données de la FFIEC pour travailler avec des données où la variation annuelle des dépôts d'épargne RCON0352 est affectée par un important décalage.

Cette activité fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Voir le cours

Instructions de l’exercice

  • Démarrez une transaction en mode SERIALIZABLE.
  • Mettez à jour tous les enregistrements où RCON0352 est supérieur à 100 000 en appliquant une réduction de 50 %.
  • COMMIT la transaction.
  • Sélectionnez le nombre d'enregistrements dont la valeur RCON0352 est encore supérieure à 100 000.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- 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;
Modifier et exécuter le code