Sobes.tech
Назад к вопросам
Middle+
14

Для чего нужен SELECT FOR UPDATE?

Компании, где спрашивали
ТБанк

Ответ от нейросети

sobes.tech AI

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

Например, если в Go вы работаете с базой данных и хотите обновить запись, сначала можно выполнить:

SELECT * FROM accounts WHERE id = 123 FOR UPDATE;

Это гарантирует, что пока ваша транзакция не завершится, другие транзакции не смогут изменить или заблокировать эти строки.

В Go с использованием database/sql это может выглядеть так:

tx, err := db.Begin()
if err != nil {
    // обработка ошибки
}
row := tx.QueryRow("SELECT balance FROM accounts WHERE id = ? FOR UPDATE", 123)
// обработка результата
// обновление данных
err = tx.Commit()