Začněte nyníZačněte zdarma

Úrovně izolace a transakce

SERIALIZABLE je úroveň izolace, která pořídí snímek záznamu v okamžiku, kdy je vydán první dotaz nebo příkaz UPDATE. Pokud jsou data mimo transakci jakkoliv změněna, transakce skončí chybou. Transakce přitom může před prvním dotazem provést jiné operace, například deklarovat proměnné.

Budeš opět pracovat s datasetem FFIEC a se záznamy, kde roční změna spořicích vkladů RCON0352 je ovlivněna výrazným posunem.

Toto cvičení je součástí kurzu

Transakce a ošetření chyb v PostgreSQL

Zobrazit kurz

Pokyny k cvičení

  • Spusť transakci v režimu SERIALIZABLE.
  • Proveď aktualizaci všech záznamů, kde je RCON0352 větší než 100 000, a sniž jejich hodnotu o 50 %.
  • Transakci COMMITuj.
  • Vyber počet záznamů, u nichž je RCON0352 stále větší než 100 000.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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;
Upravit a spustit kód