Вместо сбора результирующих строк в слайс и выполнения запроса SQL при повторном выполнении этих строк во второй раз, я думаю, будет лучше выполнить запрос при вызове rows.Next()
.
вместо это:
// error does not happen
func attempt1() {
db, _ := sql.Open(driver, dsn)
tx, _ := db.Begin()
rows, _ := tx.Query(query)
results := collectIntoSlice(rows)
for _, row := range results {
doOtherQuery(tx)
}
}
Я хочу это:
// error does not happen
func attempt2() {
db, _ := sql.Open(driver, dsn)
tx, _ := db.Begin()
rows, _ := tx.Query(query)
for rows.Next() {
doOtherQuery(tx)
}
}
Но безопасен ли второй подход?