Встречается на собеседованиях • сегодня

Зачем нужно выражение SELECT FOR UPDATE в SQL

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

Пример:

sql
BEGIN;
SELECT * FROM accounts WHERE user_id = 1 FOR UPDATE;  -- Блокировка строки
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
COMMIT;

Ключевые моменты:

  • Блокировка снимается после COMMIT или ROLLBACK.
  • Если другая транзакция попытается изменить заблокированную строку, она будет ждать снятия блокировки (или завершится с ошибкой, если настроен таймаут).
  • Используется в сценариях, где важно избежать состояния гонки (например, финансовые операции).

Альтернативы: SELECT ... LOCK IN SHARE MODE (для чтения без изменения).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы