Sobes.tech
Назад к вопросам
Junior — Middle
104

Как реализовать контроль выполнения запросов в операторе SELECT в базе данных?

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

sobes.tech AI

В Go для контроля выполнения запросов SELECT к базе данных обычно используют контекст (context.Context), который позволяет задать таймаут или отмену операции. Это помогает избежать зависания запросов и контролировать время их выполнения.

Пример использования с пакетом database/sql:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

rows, err := db.QueryContext(ctx, "SELECT id, name FROM users WHERE active = ?", true)
if err != nil {
    // обработка ошибки
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string
    if err := rows.Scan(&id, &name); err != nil {
        // обработка ошибки
    }
    // работа с данными
}

Здесь QueryContext принимает контекст с таймаутом, после которого запрос будет отменён, если не завершится. Такой подход обеспечивает контроль выполнения запросов SELECT.