Рівні ізоляції та транзакції
SERIALIZABLE — це рівень ізоляції, який робить знімок запису, коли виконується перший запит або оператор оновлення, і повертає помилку, якщо дані будь-яким чином змінюються поза межами транзакції. Зауважте, що транзакція може виконувати іншу роботу, наприклад, оголошувати змінні, до першого запиту.
Ви знову використаєте набір даних FFIEC, щоб попрацювати з даними, де річна зміна ощадних депозитів RCON0352 зазнає впливу великого зсуву.
Ця вправа є частиною курсу
Транзакції та обробка помилок у PostgreSQL
Інструкції до вправи
- Почніть транзакцію в режимі
SERIALIZABLE. - Оновіть усі записи, де
RCON0352більше ніж 100 000, із зменшенням на 50%. - Виконайте
COMMITтранзакції. - Виберіть кількість записів, у яких значення
RCON0352все ще більше ніж 100 000.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- 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;