Как прочитать 4 запроса из Batch

«Как прочитать 4 запроса из Batch» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для чтения 4 запросов из Batch в Go можно использовать Batch.Get() с индексами или итерацию. Пример:

batch := &pg.Batch{}
batch.Queue("SELECT * FROM users WHERE id = $1", 1)
batch.Queue("SELECT * FROM products WHERE id = $1", 42)
batch.Queue("SELECT * FROM orders WHERE id = $1", 7)
batch.Queue("SELECT name FROM categories WHERE id = $1", 3)

results, err := db.SendBatch(ctx, batch)
defer results.Close()

var user User
err = results.QueryRow().Scan(&user.ID, &user.Name)

var product Product
err = results.QueryRow().Scan(&product.ID, &product.Name)

var order Order
err = results.QueryRow().Scan(&order.ID, &order.Amount)

var categoryName string
err = results.QueryRow().Scan(&categoryName)

Важно:

  1. Читать результаты в том же порядке, что и запросы
  2. Всегда закрывать Batch с defer results.Close()
  3. Проверять ошибки после каждого QueryRow()