Sobes.tech
Junior — Middle
98

Explicați scopul construcției SELECT FOR UPDATE în SQL și utilizarea acesteia în gestionarea tranzacțiilor

Companiile au fost întrebate
Lemon

Răspuns de la 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 помогает управлять конкурентным доступом и предотвращать состояния гонки при параллельных операциях с базой данных.