CommencerCommencer gratuitement

Niveaux d’isolation et transactions

SERIALIZABLE est un niveau d’isolation qui prend un instantané de l’enregistrement lorsque la première requête ou instruction de mise à jour est exécutée, et renvoie une erreur si les données sont modifiées de quelque manière que ce soit en dehors 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 de nouveau utiliser le jeu de données FFIEC pour travailler sur des données où la variation annuelle des dépôts d’épargne RCON0352 est affectée par un important décalage.

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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