SQL і PostgreSQL

Урок 09 · 12 хв

Одночасні зміни: блокування й upsert

Два покупці беруть останній товар в одну мілісекунду. Хто отримає?

12 хвУрок 9 з 10Є практикаAsk AI до кожного пункту

Коли застосунок спершу читає значення, а потім записує нове, два паралельні запити можуть прочитати одне й те саме й затерти зміни один одного — втрачене оновлення. Рятують три прийоми: зміна однією командою з умовою (SET stock = stock - 1 WHERE stock > 0), блокування рядка через SELECT … FOR UPDATE усередині транзакції та INSERT … ON CONFLICT для «створи або онови».

Далі після входу

Решта уроку відкривається після реєстрації

Перший урок кожного курсу відкритий без реєстрації. Щоб читати далі, робити практику і питати Ask, створи безкоштовний акаунт або увійди.