Back to questions
Junior — Middle
105
Как реализовать контроль выполнения запросов в операторе SELECT в базе данных?
Answer from AI
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.