Встречается на собеседованиях • сегодня
Что такое SELECT FOR UPDATE в SQL
SELECT FOR UPDATE — это SQL-запрос, который блокирует выбранные строки до завершения текущей транзакции, предотвращая их изменение другими транзакциями. Используется для обеспечения согласованности данных при конкурентном доступе.
Пример:
sql
BEGIN;
SELECT * FROM accounts WHERE user_id = 1 FOR UPDATE;
-- Другие транзакции не смогут изменять эти строки до COMMIT/ROLLBACK
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
COMMIT;Нюансы:
- Блокировка снимается при
COMMITилиROLLBACK. - Может привести к взаимоблокировкам (deadlocks), если транзакции запрашивают блокировки в разном порядке.
- В PostgreSQL можно добавить
NOWAIT, чтобы запрос сразу завершался с ошибкой, если строки уже заблокированы.
Подходит для критичных операций, например, финансовых транзакций.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы