Junior — Middle
Quelles sont les options d'utilisation de la construction SELECT FOR UPDATE dans les bases de données?
sobes.tech IA
Réponse de l'IA
Конструкция SELECT FOR UPDATE используется для блокировки выбранных строк в базе данных, чтобы предотвратить их изменение другими транзакциями до завершения текущей. Основные варианты использования:
- Обеспечение целостности данных при конкурентном доступе. Например, при обновлении баланса счета сначала блокируются нужные строки, чтобы избежать гонок.
- Реализация механизма блокировки на уровне приложения. Позволяет гарантировать, что другие транзакции не смогут изменить или удалить выбранные записи.
- Использование с различными режимами блокировок. В некоторых СУБД можно указать
NOWAITилиSKIP LOCKEDдля управления поведением при блокировках.
Пример в Go с использованием базы PostgreSQL:
row := db.QueryRow("SELECT balance FROM accounts WHERE id = $1 FOR UPDATE", accountID)
// Далее можно безопасно обновлять баланс, зная, что строка заблокирована