需要使用一个表更新另外一个表的时候
sql := `select uname, group_concat(title) from tags group by uname`
rows, err := db.Query(sql)
for rows.Next() {
name := ""
titles := ""
err = rows.Scan(&name, &titles)
// update user
sql = `update user set title=? where name=?`
_, err = db.Exec(sql, titles, name + "xx")
}
出现了报错:
[MySQL] 2017/11/15 12:23:22 packets.go:381: Busy buffer
panic: driver: bad connection
goroutine 1 [running]:
...
原因:
同一个事务每一个Query的结果集用的都是同一个缓存,必须把Query后的结果集清空才能再次执行