Бази даних · Middle · Запитання 18 з 75

Що таке «втрачене оновлення» і як йому запобігти?

-- Два запити одночасно:
SELECT balance FROM accounts WHERE id = 1;   -- обидва читають 100
UPDATE accounts SET balance = 150 WHERE id = 1;  -- +50
UPDATE accounts SET balance = 130 WHERE id = 1;  -- +30

Пояснення

Класичне джерело - «прочитати-змінити-записати» в коді застосунку. Нехай арифметику робить база, або блокуйте чи версіонуйте рядок.

Де почитати

Помилка в запитанні

Бази даних · Middle · запитання 18

Перевірте себе

Пройдіть тест Бази даних · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест