SELECT FOR UPDATE: пример банковского перевода

Например, при реализации банковского перевода:

Короткий ответ

Что ответить на собеседовании

Например, при реализации банковского перевода:

Подробный разбор

Ответ с пояснениями

Конструкция SELECT ... FOR UPDATE в SQL используется для блокировки выбранных строк таблицы на время текущей транзакции. Это предотвращает одновременное изменение этих строк другими транзакциями, обеспечивая согласованность данных.

Например, при реализации банковского перевода:

BEGIN TRANSACTION;
SELECT balance FROM accounts WHERE account_id = 123 FOR UPDATE;
-- вычисления и обновления баланса
UPDATE accounts SET balance = new_balance WHERE account_id = 123;
COMMIT;

Здесь FOR UPDATE блокирует строку с account_id = 123, чтобы другие транзакции не могли изменить её до завершения текущей транзакции.

Таким образом, SELECT FOR UPDATE помогает управлять конкурентным доступом и предотвращать состояния гонки при параллельных операциях с базой данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее