gpt4 book ai didi

mysql - Go语言-不使用prepared statements向Mysql数据库插入数据

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:10 27 4
gpt4 key购买 nike

我有一个脚本需要向数据库中插入大量数据(27 万行),并且我使用的是准备好的语句(带有 for 循环)。当我执行 (res, err := stmt.Exec) 时,我可以检索插入到数据库中的最后一个 ID (id, err = res.LastInsertId() ).但是由于我对数据库发出了很多请求,在 16k 行之后我得到了 max_prepared_statements(16,382) 错误(然后我尝试将最大值设置为 100 万而不是 16,382,但是问题仍然存在)。

我的问题是是否有另一种方法可以在不使用准备语句的情况下插入数据库并检索最后插入的 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”循环中,因此它每次都会创建一个新的准备语句。

也感谢前面提到的Apin

关于mysql - Go语言-不使用prepared statements向Mysql数据库插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37125537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com