最近用 gin+mysql编写web工程,其中使用了gorm库对数据库进行操作。由于gorm目前暂未提供 批量插入方法,推荐使用原sql语句批量插入数据。
参考链接
- gorm中文文档:https://jasperxu.github.io/gorm-zh/
- mysql批量更新与插入相关博客:https://blog.yumaojun.net/2017/06/19/mysql-performance-for-bulk-action/
批量插入mysql数据
// 声明project_pics数据表结构
type ProjectPic struct {
Id int `json:"id"`
ProjectId int `json:"project_id"`
Url string `json:"url"`
Type string `json:"type"`
}
func AddProjectPics(data []string, project_pic_type string, project_id int) bool {
sql := "INSERT INTO `project_pics` (`project_id`,`url`,`type`) VALUES "
// 循环data数组,组合sql语句
for key, value := range data {
if len(data)-1 == key {
//最后一条数据 以分号结尾
sql += fmt.Sprintf("(%d,'%s','%s');", project_id, value, project_pic_type)
} else {
sql += fmt.Sprintf("(%d,'%s','%s'),", project_id, value, project_pic_type)
}
}
db.Exec(sql)
return true
}