Что такое SELECT FOR UPDATE?

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

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

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

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

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

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

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

Когда вы выполняете запрос:

SELECT * FROM table_name WHERE condition FOR UPDATE;
  • Строки, удовлетворяющие условию, блокируются для записи.
  • Другие транзакции не смогут изменить или заблокировать эти строки, пока текущая транзакция не завершится (commit или rollback).

Это используется для реализации механизма оптимистичной или пессимистичной блокировки, чтобы избежать конфликтов при параллельном доступе к данным.

Пример:

BEGIN;
SELECT * FROM accounts WHERE account_id = 123 FOR UPDATE;
-- выполнить операции с выбранной записью
UPDATE accounts SET balance = balance - 100 WHERE account_id = 123;
COMMIT;

Таким образом, SELECT FOR UPDATE гарантирует, что данные, с которыми работает транзакция, не будут изменены другими до её завершения.

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

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

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

Подробнее