Back to questions
Junior — Middle
62
Объясните предназначение конструкции SELECT FOR UPDATE в SQL и ее использование в управлении транзакциями
Companies where asked
Lemon
Answer from AI
sobes.tech AI
Конструкция 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 помогает управлять конкурентным доступом и предотвращать состояния гонки при параллельных операциях с базой данных.