Junior — Middle
V jakých případech se v SQL používá příkaz SELECT FOR UPDATE a k jakým účelům je určen?
sobes.tech AI
Odpověď od AI
Команда SELECT FOR UPDATE используется в SQL для блокировки выбранных строк таблицы на время транзакции. Это предотвращает одновременное изменение этих строк другими транзакциями, обеспечивая целостность данных при конкурентном доступе.
Основные случаи использования:
- Когда нужно прочитать данные и затем обновить их, гарантируя, что никто другой не изменит эти данные между чтением и обновлением.
- В сценариях, где важна последовательность операций и предотвращение конфликтов при параллельной работе с одними и теми же записями.
Пример:
BEGIN;
SELECT * FROM accounts WHERE account_id = 123 FOR UPDATE;
-- здесь можно безопасно обновлять выбранную запись
UPDATE accounts SET balance = balance - 100 WHERE account_id = 123;
COMMIT;
В этом примере выбранная запись блокируется до завершения транзакции, чтобы избежать гонок при обновлении баланса.