Go语言-在没有准备语句的情况下将数据插入Mysql数据库

Go语言-在没有准备语句的情况下将数据插入Mysql数据库,mysql,go,Mysql,Go,我有一个脚本,需要向数据库(270k行)插入大量数据,我正在使用准备好的语句(带有for循环)。 当我执行(res,err:=stmt.Exec)时,我可以检索插入数据库的最后一个ID(ID,err=res.LastInsertId())。 但由于我向数据库发出了大量请求,在16k行之后,我得到了max\u prepared\u statements(16382)error(然后我尝试将max值设置为100万而不是16382,但问题仍然存在) 我的问题是,是否有另一种方法可以插入DB并检索最后插

我有一个脚本,需要向数据库(270k行)插入大量数据,我正在使用准备好的语句(带有for循环)。 当我执行(
res,err:=stmt.Exec
)时,我可以检索插入数据库的最后一个ID(
ID,err=res.LastInsertId()
)。 但由于我向数据库发出了大量请求,在16k行之后,我得到了
max\u prepared\u statements(16382)error
(然后我尝试将max值设置为100万而不是16382,但问题仍然存在)

我的问题是,是否有另一种方法可以插入DB并检索最后插入的ID,而无需使用准备好的语句

我目前的插入代码是:

stmt, err := db.Prepare(`INSERT info SET title=?,minimage=?,downloadfile=?,rating=?,peoplewatched=?,likes=?`)
checkErr(err)
res, err := stmt.Exec(title,minimage,downloadfile,rating,peoplewatched,likes)
checkErr(err)
id, err  = res.LastInsertId()
checkErr(err)
fmt.Println(id)

感谢那些遇到同样问题的人,请确保只调用一次Prepare语句,并将其从任何循环中删除。我只是注意到它在我的“for”循环中,因此每次它都会创建一个新的prepare语句


还要感谢Apin在前面提到了它。对于遇到相同问题的人,请确保只调用一次Prepare语句,并将其从任何循环中删除。我只是注意到它在我的“for”循环中,因此每次它都会创建一个新的prepare语句


还要感谢Apin在前面提到它

,您应该显示更多的代码。很可能您从未关闭语句和/或行。是否在每次插入时创建新语句(调用db.Prepare)?顺便说一句,你有另一个stackoverflow线程和我想的问题相同。可能的重复应该显示更多的代码。很可能您从未关闭语句和/或行。是否在每次插入时创建新语句(调用db.Prepare)?顺便说一句,你有另一个stackoverflow线程,我想也是这个问题。这可能是重复的,为什么你需要在这里附加更多代码,以便更好地理解他人。这就是为什么你需要在这里附加更多代码,以便更好地理解他人。